Öffnen einer PDF-Datei durch Eingeben ihres Namens

Öffnen einer PDF-Datei durch Eingeben ihres Namens

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 foundden folgenden Fehler aus:

$ 1.pdf
bash: 1.pdf: command not found

Danach wird auch ERRein „Signal“ ausgegeben. Mithilfe von buildin trapkö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 ERRprü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..fimögliche Fehler, die durch das Vergessen eines führenden Schrägstrichs entstehen, damit Sie ihn beheben können.

Zu Beginn der nächsten ifAnweisung 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 ifeingeben (natürlich müssen Sie eine Prüfung hinzufügen, ob die Datei PDF ist).open $cmdAPPLICATION_TO_OPEN_PDF $cmd

Sicherheitshinweis: Wenn Sie diese Funktion verwenden möchten, sollten Sie lieber APPLICATION_TO_OPEN_PDF $cmdals 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 opens 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 openden Namen erstellen ound 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

verwandte Informationen