すべてのスクリプトで "command -p"をどのように自動化できますか?

すべてのスクリプトで "command -p"をどのように自動化できますか?

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'

関連情報