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