割り当てから始まるコマンドでコマンドを使用できないのはなぜですか?

割り当てから始まるコマンドでコマンドを使用できないのはなぜですか?

Bashのマニュアルから:

コマンド[-pVv]注文する[論争...]

commandという名前のシェル関数を無視し、引数を使用してコマンドを実行します。シェル組み込みコマンドまたはPATHを検索して、見つかったコマンドのみを実行します。 lsというシェル関数がある場合、関数内で "command ls"を実行すると、関数を再帰的に呼び出すのではなく、外部コマンドlsが実行されます。 -pオプションは、PATHのデフォルト値を使用してすべての標準ユーティリティを見つけることができることを意味します。コマンドが見つからないかエラーが発生した場合、この場合は戻り状態は127、そうでない場合はコマンドの終了状態です。

マニュアルに故障の原因が記載されていますか?注文する割り当てですか、それとも割り当て(環境変数用)で始まりますか?

$ command aaa=1
aaa=1: command not found

$ command aaa=1 echo hello
aaa=1: command not found

ベストアンサー1

commandオプションの割り当て、オプションのリダイレクト、およびオプションの単語(コマンド名とオプションの引数を含む)の空でないシーケンス、POSIXは「単純なコマンド」と呼ばれるものと、Bashで使用される「コマンド」との間に混乱があります。マニュアルの概要 「これはコマンド名だけです。

ここで割り当てを実際に使用するには、次のようにします。

aaa=1 command echo hello

コマンドがまったくなく、割り当てのみがある場合は、command最初に検索する組み込みコマンドやPATHにコマンドがないため、コマンドの使用に大きな意味はありません。

実際に変数を設定するには、command次を使用できます。

command typeset aaa=1

または

command declare aaa=1

おすすめ記事