#TOC
执行多条命令
echo 1 && echo 2 && echo 3
多条命令赋给变量
export cmd="echo 1 && echo 2 && echo 3"
$cmd
- 不会像我们期望的那样执行3个echo命令
- 通过查询资料发现,
shell
自动将&&
的使用进行了限制- 为了解决这个问题查了很多资料,发现使用awk和system函数可以解决问题
解决方案
export cmd="echo 1 && echo 2 && echo 3"
export cmd2="echo 1; echo 2; echo 3;"
echo $cmd | awk '{run=$0; system(run)}'
echo $cmd2 | awk '{run=$0; system(run)}'
执行结果正确
1
2
3
1
2
3