我想将命令存储在变量中以便稍后使用(不是命令的输出,而是命令本身)。
我有一个简单的脚本如下:
command="ls";
echo "Command: $command"; #Output is: Command: ls
b=`$command`;
echo $b; #Output is: public_html REV test... (command worked successfully)
但是,当我尝试一些更复杂的事情时,它失败了。例如,如果我做
command="ls | grep -c '^'";
输出为:
Command: ls | grep -c '^'
ls: cannot access |: No such file or directory
ls: cannot access grep: No such file or directory
ls: cannot access '^': No such file or directory
如何将这样的命令(带有管道/多个命令)存储在变量中以供以后使用?
使用评估:
x="ls | wc"
eval "$x"
y=$(eval "$x")
echo "$y"
我是一名优秀的程序员,十分优秀!