名前を入力してPDFファイルを開きます。

名前を入力してPDFファイルを開きます。

私は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そこにチェックサムを入れることができます。これにより、エラーメッセージは表示されませんが、処理したくない状況でエラーコードとメッセージを処理する方法がわかりません。

おすすめ記事