zsh 运行存储在变量中的命令? [英] zsh run a command stored in a variable?
本文介绍了zsh 运行存储在变量中的命令?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在 shell 脚本(在 .zshrc 中)中,我试图执行一个命令,该命令以字符串形式存储在另一个变量中.网络上的各种消息来源说这是可能的,但我没有得到我期望的行为.也许是命令开头的 ~
,或者是 sudo
的使用,我不确定.有任何想法吗?谢谢
In a shell script (in .zshrc) I am trying to execute a command that is stored as a string in another variable. Various sources on the web say this is possible, but I'm not getting the behavior i expect. Maybe it's the ~
at the beginning of the command, or maybe it's the use of sudo
, I'm not sure. Any ideas? Thanks
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
}
输出:
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
推荐答案
使用eval
:
eval ${install_cmd}
这篇关于zsh 运行存储在变量中的命令?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文