D.C*_*.C. 10 shell scripting zsh
在shell脚本(在.zshrc中)我试图执行一个命令,该命令作为字符串存储在另一个变量中.网络上的各种消息来源说这是可能的,但我没有得到我期望的行为.也许这是~在命令的开头,或者也许是使用sudo,我不确定.有任何想法吗?谢谢
function update_install()
{
# builds up a command as a string...
local install_cmd="$(make_install_command $@)"
# 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
}
Run Code Online (Sandbox Code Playgroud)
输出:
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
Run Code Online (Sandbox Code Playgroud)
rua*_*akh 11
正如上文3.1节"为什么$var这里var="foo bar"没有做什么,我期待?" 在Z-Shell FAQ中,您可以使用shwordsplitshell选项告诉zsh您希望它按空格分割变量并将它们视为多个单词.同一页面还讨论了您可能想要考虑的替代方案.