我想用重定向和/或管道创建一个bash字符串命令,并使用它来显示命令字符串或执行命令字符串.没有重定向或管道的简单命令可以工作,但是带有重定向或管道的一串命令不能.例如,
command="echo 1" $command echo "$command"
会显示
1 echo 1
然而,
command="echo 1 | cat" $command echo "$command"
会显示
1 | cat echo 1 | cat
但我想要
1 echo 1 | cat
同样对于重定向,
command="echo 1 | cat > 1.out" $command echo "$command"
会显示
1 | cat > 1.out echo 1 | cat > 1.out
但我想要
echo 1 | cat > 1.out
使用名为"1.out"的新文件,其中包含内容1.
有没有办法实现我想要的?
如果您希望shell将字符串计算为命令,请告诉它:
eval "$command" echo "$command"