echo hello && $(echo "world") が "bash:world: コマンドが見つかりません" のため失敗します。

echo hello && $(echo "world") が "bash:world: コマンドが見つかりません" のため失敗します。

完全なコマンドはシェルプロンプトがある% echo hello && $(echo "world")場所です。%

なぜ失敗したのですか?

bashで直接コマンド置換を実行したときとエラーが同じであることがわかりました。

% $(echo "world")

答え1

"hello"コマンドを実行しようとしましたが、システムにバイナリがないため失敗します。

echoの引数は引用符で囲む必要があります。例:

echo "hello"

答え2

グループ化が間違っています。

Bashでコマンドをグループ化するには、次のように中括弧を使用します。

% echo hello && { echo "world"; }

構文に関するいくつかの注意:

  • 開く中括弧はで区切る必要がありますecho。それ以外の場合は、コマンド名の一部として扱われます{echo
  • 括弧内の一連の命令はセミコロンで終わらなければなりません;

制御タスクについては、このページの「3.グループ化ステートメント」セクションを参照してください。http://mywiki.wooledge.org/BashGuide/TestsAndConditionals#Control_Operators_.28.26.26_and_.7C.7C.29

関連情報