2010-11-22 123 views
0

我写了一个bash脚本来自动化一些单调乏味的事情,所以我在echo中看到了正确的命令,但是当我运行它时,它不起作用。这是我在做什么:如何查看执行脚本时执行的命令?

CMD='custom_script update --flag=value --comment="testing"' 
echo -e "Running $CMD" 
$CMD 

回波显示: custom_script更新--flag =值--comment =“测试”

这是正确的,但是这不是什么真正运行与$ CMD行(我知道,因为如果我复制并粘贴从回声的输出,它的工作原理,但在脚本中运行后的错误信息表明引用关闭)。

我想我可以弄清楚,如果我可以看到$ CMD运行的命令,但我不知道该怎么做。像

bash -x script.sh 

或修改类似

#!/bin/bash -x 
+1

请参阅[BashFAQ/050](http://mywiki.wooledge.org/BashFAQ/050)和[BashFAQ/048](http://mywiki.wooledge.org/BashFAQ/048)。 – 2010-11-22 06:31:35

回答

3

运行它。

+0

这是做什么的?我发布的是脚本的简化版本,向shebang中添加-x会在代码前打印各种其他具有+和++的内容,如: ++ awk'{print $ 2}' – Kai 2010-11-22 04:00:18

+1

使用' -x'是非常好的建议,它可以让你看到每一行,因为它被执行。这里是来自bash手册页的'-x'文档:https://gist.github.com/709592 – wuputah 2010-11-22 06:06:49

0

的家当看起来

eval $CMD 

正是我需要的