シェルコマンドを直接使用すること(例:foo)と$(foo)を使用することの違いは何ですか?

シェルコマンドを直接使用すること(例:foo)と$(foo)を使用することの違いは何ですか?

コマンドを直接使用することと$(foo)を使用することの間で混乱しています。私はMacを使用しておりbrew cask(パッケージマネージャ)がインストールしたアプリケーションを一覧表示し、各アプリケーションをエコーし​​ようとしています。 2つの短いシェルスクリプトがあり、最初のスクリプトは次のとおりです。

#!/bin/bash
apps=$(brew cask list)
for app in ${apps}
do
    echo  "${app}"
done

うまくいきますが、別のものは次のとおりです。

#!/bin/bash
apps=$(brew cask list)
myecho=$(echo)
for app in ${apps}
do
    ${myecho}  "${app}"
done

これによりアプリケーション名./script2.sh: line 7: foo: command not foundが返されます。fooechoを直接使用することとエイリアスとして使用することのmyecho違いは何ですか?

ベストアンサー1

このコマンドでは

myecho=$(echo)

myecho空のトークンを設定しています。だから次のコマンド

${myecho}  "${app}"

簡単に言えば"${app}"、これは明らかに「foo」です(予想されていません)。一つ作ってくれる?ニックネーム別の構文を使用してください。

alias myecho="echo"

追加資料:

おすすめ記事