从unix shell脚本中的字符串变量执行命令
我在文件从unix shell脚本中的字符串变量执行命令,shell,unix,Shell,Unix,我在文件scr.sh中获得了此代码: #!/bin/sh string='ps -e | less' $string 当我执行这个脚本时,它不起作用。为什么?如何在shell脚本中从字符串变量执行命令?最好将命令存储在函数中,而不是变量中。功能非常好。变量,一点也不 string() { ps -e | less } string 您可以使用eval执行具有重定向的命令(,或者如果它不太难分叉,那么一个简单的bash-c$string就足够了。虽然这个方法不如函数好,但它仍然可以完
scr.sh
中获得了此代码:
#!/bin/sh
string='ps -e | less'
$string
当我执行这个脚本时,它不起作用。为什么?如何在shell脚本中从字符串变量执行命令?最好将命令存储在函数中,而不是变量中。功能非常好。变量,一点也不
string() {
ps -e | less
}
string
您可以使用
eval
执行具有重定向的命令(
,或者如果它不太难分叉,那么一个简单的bash-c$string
就足够了。虽然这个方法不如函数好,但它仍然可以完成任务。我还应该提到,bash-c$string
和eval$string
一样糟糕。为什么不使用eval
?只有在这种情况下才有效。请注意因为我真的需要从键盘上读取字符串
,用它做一些事情,然后执行。
eval "$string" # please don't