シェルスクリプト(.zshrc内)では、別の変数に文字列として格納されているコマンドを実行しようとしています。ウェブ上のさまざまな情報源はこれが可能だと言っていますが、私は期待している振る舞いを得ていません。おそらく、コマンドの冒頭に~
がありますか、それともsudo
を使用しているかわかりません。何か案は?おかげzshは変数に格納されたコマンドを実行しますか?
function update_install()
{
# builds up a command as a string...
local install_cmd="$(make_install_command [email protected])"
# At this point the command as a string looks like: "sudo ~some_server/bin/do_install arg1 arg2"
print "----------------------------------------------------------------------------"
print "Will update install"
print "With command: ${install_cmd}"
print "----------------------------------------------------------------------------"
echo "trying backticks"
`${install_cmd}`
echo "Trying \$()"
$(${install_cmd})
echo "Trying \$="
$=install_cmd
}
出力:
Will update install
With command: sudo ~some_server/bin/do_install arg1 arg2
trying backticks
update_install:9: no such file or directory: sudo ~some_server/bin/do_install arg1 arg2
Trying $()
update_install:11: no such file or directory: sudo ~some_server/bin/do_install arg1 arg2
Trying $=
sudo ~some_server/bin/do_install arg1 arg2: command not found
あなたは 'zsh -c '$ {install_cmd}'' – Alex