私はMac OS Xを使用しており、通常ターミナルでPDFファイルを開きます(bashを使用)。
open myfile.pdf
今タイプすることができます。
myfile.pdf
上記のコマンドを使用して開きます。このコマンドを実行するようにbashを設定できますか?これがPDFファイルにのみ当てはまると嬉しいですが、より一般的な解決策も歓迎します。
いくつかのキーストロークを保存するだけではありません。問題を解決するのに2時間かかる場合は、2回のキーストロークを取り除くことで、今後数年間の時間を節約できるかどうか疑問です。これが可能かどうか、そしてこれを達成する方法を知りたいです。
答え1
この機能をに追加する方法がありますbash
。
ファイルを「実行」しようとすると、bashでcommand not found
エラーが発生します。
$ 1.pdf
bash: 1.pdf: command not found
ERR
その後、「信号」も送信します。組み込み関数を使用すると、trap
このタイプの信号を捕捉してエラーを処理する関数を定義できます。
存在するそのページエラーを処理するスクリプトを見つけることができます(参照:説明する)。
スクリプトには注釈がよく付いているため、必要に応じて修正することは問題になりません。
これをキャッチした後、ERR
最後のコマンドのエラーコードを確認してください。それが間違っている場合2、126、または127続きます。次のステップでは、最後のコマンドを確認し、コマンドの部分とパラメータに分割します。
まずif..fi
、「前のスラッシュを忘れてしまう可能性のあるエラーを処理する」ことで、スラッシュを削除できます。
次のステートメントの先頭でif
コマンドがディレクトリであることを確認するため、削除することもできます。より興味深い部分は2番目の部分ですif
。スクリプトは、ファイル形式を確認し、その形式のファイルを開く方法に関するいくつかの提案を印刷します。代わりに、open $cmd
または同じものを入力できますAPPLICATION_TO_OPEN_PDF $cmd
(もちろん、ファイルがPDFであることを確認するには、チェックマークを追加する必要があります)。
セキュリティ上の注意:この機能を使用するには、APPLICATION_TO_OPEN_PDF $cmd
代わりに使用する必要がありますopen $cmd
。また、一部の悪意のあるスクリプトや同様の機能が実行されないように、すべての種類のファイルに対してopenまたはexecを使用する代わりに、特定の種類のファイルに対してアクションを設定する必要があります。
これを行う別の方法がありますが、これがより侵害的であるため、いくつかの問題が発生する可能性があると思います。
関数をオーバーライドcommand_not_found_handle()
し、open
そこにチェックサムを入れることができます。これにより、エラーメッセージは表示されませんが、処理したくない状況でエラーコードとメッセージを処理する方法がわかりません。
答え2
zshからサフィックスエイリアスあなたの.zshrc
:
alias -s pdf=open
zshは通常bashよりも優れた対話型機能とより良いプログラミング機能を持っています。 Mac OS X バージョン 10.4 以降から含まれています。
答え3
open
名前のエイリアスを作成してから、次のように入力できるo
ようです。
o myfile.pdf
これはタイピング時間を節約するかどうかはわかりませんがopen
:-)いずれの場合でもファイル名を指定する必要があります。
したがって、エイリアスの場合:
alias o="open"
あなたの~/.bashrc file