
Ich verwende Mac OS X und öffne PDF-Dateien normalerweise vom Terminal aus (mit Bash).
open myfile.pdf
Jetzt könnte ich nur noch tippen
myfile.pdf
und lasse es mit dem obigen Befehl öffnen. Gibt es eine Möglichkeit, Bash so zu konfigurieren, dass dieser Befehl für mich ausgeführt wird? Ich wäre froh, wenn das nur für PDF-Dateien funktioniert, aber natürlich ist eine allgemeinere Lösung willkommen.
Eigentlich geht es nicht nur darum, ein paar Tastenanschläge zu sparen. Wenn ich für eine Lösung zwei Stunden brauche, bezweifle ich, dass ich in den nächsten Jahren durch zwei Tastenanschläge weniger so viel Zeit sparen werde. Ich würde gerne wissen, ob und wie das möglich ist.
Antwort1
Es gibt eine Möglichkeit, diese Funktion hinzuzufügen bash
.
Wenn Sie versuchen, die Datei „auszuführen“, gibt Bash command not found
den folgenden Fehler aus:
$ 1.pdf
bash: 1.pdf: command not found
Danach wird auch ERR
ein „Signal“ ausgegeben. Mithilfe von buildin trap
können Sie diesen Signaltyp abfangen und eine Funktion definieren, die den Fehler behandelt.
Andiese SeiteSie können ein Skript finden, das diesen Fehler behebt (lesen Sie auchErläuterung).
Das Skript ist gut kommentiert, daher sollte es kein Problem sein, es Ihren Bedürfnissen entsprechend zu ändern.
Nach dem Abfangen ERR
prüft es den Fehlercode des letzten Befehls. Wenn es ein Fehler ist2, 126 oder 127es wird fortgesetzt. Im nächsten Schritt wird der letzte Befehl überprüft und in Befehlsteil und Argumente aufgeteilt.
Behandeln Sie zunächst if..fi
mögliche Fehler, die durch das Vergessen eines führenden Schrägstrichs entstehen, damit Sie ihn beheben können.
Zu Beginn der nächsten if
Anweisung wird geprüft, ob Ihr Befehl ein Verzeichnis ist, sodass er ebenfalls entfernt werden könnte. Interessanter ist der zweite Teil davon – das Skript prüft den Dateityp und gibt einige Vorschläge aus, wie dieser Dateityp geöffnet werden kann. Stattdessen können Sie einfach etwas wie oder if
eingeben (natürlich müssen Sie eine Prüfung hinzufügen, ob die Datei PDF ist).open $cmd
APPLICATION_TO_OPEN_PDF $cmd
Sicherheitshinweis: Wenn Sie diese Funktion verwenden möchten, sollten Sie lieber APPLICATION_TO_OPEN_PDF $cmd
als verwenden open $cmd
. Sie sollten auch die Aktion für bestimmte Dateitypen festlegen und nicht „open“ oder „exec“ für alle Dateitypen verwenden, um die Ausführung bösartiger Skripts oder Ähnlichem zu vermeiden.
Es gibt auch eine andere Möglichkeit, dies zu tun, aber ich denke, dass dies zu Problemen führen könnte, da es aufdringlicher ist.
Sie könnten die Funktion neu definieren command_not_found_handle()
und dort Prüfungen und open
s einfügen. Das führt dazu, dass keine Fehlermeldungen ausgegeben werden, aber ich bin nicht sicher, was mit Fehlercodes und -meldungen in Fällen geschieht, die Sie nicht behandeln möchten.
Antwort2
Definieren Sie in zsh einenSuffix-Aliasin deinem .zshrc
:
alias -s pdf=open
Zsh hat im Allgemeinen bessere interaktive Funktionen und bessere Programmierfunktionen als Bash. Es wird seit mindestens 10.4 mit Mac OS X ausgeliefert.
Antwort3
Ich nehme an, Sie könnten einen Alias für open
den Namen erstellen o
und dann eingeben
o myfile.pdf
allerdings weiß ich nicht, ob dir das so viel Tipparbeit erspart open
:-) Der Dateiname muss in jedem Fall angegeben werden.
Also zum Alias:
alias o="open"
sollte in Ihre~/.bashrc file