command -p
以下を使用してスクリプト内のすべてのコマンドを実行したいと思います。
command -p pwd
他のカスタムユーザースクリプトで名前を使用するスクリプトからいくつかのコマンドを実行できるため、この場合、コマンドはユーザーコマンドの代わりにシステムcommand
コマンドを実行します。後ろで実際に何が起こっているのかを見て、マンページを見てください。)これが私が望むものです。
command -p
さて、スクリプトからコマンドを呼び出すたびに、行の先頭に文字通り「」を入力する必要がないように、スクリプトでcommand -p
グローバルに動作を定義する方法はありますか?
答え1
PATH=$(command -p getconf PATH)${PATH+:$PATH}
発売予定ㅏPOSIX検索パスは$ PATHの前にあります。
上記のコマンドは次の例を提供することがわかります。command
標準ユーティリティ仕様。
機能するには、サポートのためにPOSIXシェルで実行する必要がありますcommand -p
。
Solaris など、複数のバージョンの標準をサポートするシステムでは、 /use/xpg6/bin( を含むgetconf
) のコマンドは /use/xpg4/bin のコマンドとは異なる動作をし、取得するコマンドは初期環境によって異なる場合があります。
$ PATH値がシェル組み込み関数の動作に影響を与えるかどうかは、シェルによって異なります。
答え2
PATH
シェルは実行する実行可能ファイルを探します。PATH
よりエレガントなソリューションのために、変数からユーザー書き込み可能ディレクトリを除外できます。したがって、スクリプトの先頭に以下を追加します。
PATH='/usr/local/bin:/usr/bin:/bin:/usr/sbin/:/sbin/:/usr/local/games:/usr/games'