スクリプトはコマンドを正常に実行しますが、出力を変数に保存しようとすると失敗します。

スクリプトはコマンドを正常に実行しますが、出力を変数に保存しようとすると失敗します。

以下を含むシェルスクリプトがあります。私はそれを呼んだ./script.sh。 Echoは正常に実行されますが、出力を変数に保存しようとすると失敗します。これは、これlsまでにテストしたすべてのコマンドに当てはまりますpwdnode

#!/bin/zsh

echo foo
# foo

output=$("echo foo")
# command not found: echo foo

どうですか?

編集する:修正:最後のエコーが文字列の内側にありました!

ベストアンサー1

問題を見つけたようです。echo完全なコマンド自体ではなくに渡された文字列のみを引用符で囲む必要があります。

output=$("echo foo")

次のように変更する必要があります。

output=$(echo "foo")

output変数にリテラル文字列を含めるには、echo foo次のように設定する必要があります。

output='echo foo'

しかし、これを行うことも可能です:

output=$(echo 'echo foo')

おすすめ記事