2010-11-22 122 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 

正是我需要的