當插值變量比方說,我有以下內容命名爲test.sh
bash腳本:擊:使用-v
echo Dir: $PWD
當我調用此腳本與-v
開關,我可以看到正在執行的命令:
$ bash -v test.sh
echo Dir: $PWD
Dir: /Users/matt
有什麼辦法讓它在執行命令前插入命令的變量嗎?我在尋找輸出更喜歡:
echo Dir: /Users/matt
Dir: /Users/matt
當插值變量比方說,我有以下內容命名爲test.sh
bash腳本:擊:使用-v
echo Dir: $PWD
當我調用此腳本與-v
開關,我可以看到正在執行的命令:
$ bash -v test.sh
echo Dir: $PWD
Dir: /Users/matt
有什麼辦法讓它在執行命令前插入命令的變量嗎?我在尋找輸出更喜歡:
echo Dir: /Users/matt
Dir: /Users/matt
你可以硬編碼它到腳本。擾亂碼略在開始時:
#!/bin/bash -ex
echo Dir: $PWD
然後執行它像./script.sh
或與輸出將是:
+ echo Dir: /Users/matt
Dir: /Users/matt
可以手動設置選項,如果你想使用-v
#!/bin/bash
if [ $1 = -v ] ; then
set -ex
fi
echo Dir: $PWD
然後執行它像./script.sh
和輸出將是:
+ echo Dir: /Users/matt
Dir: /Users/matt
您可以按照anubhava的建議標記您的腳本,如bash -ex ./test.sh
。
注意:您可以在前面執行您的bash
風格的命令,以上是我的偏好。
參考文獻:
你要尋找的是bash -x
。
bash -x test.sh
+ echo Dir: /Users/matt
Dir: /Users/matt
-x
將以調試模式運行整個腳本。 在命令擴展之後但執行之前,每個命令的跟蹤及其參數將打印到標準輸出。
你試過了:'bash -ex。/ test.sh' – anubhava 2014-09-22 20:57:23
首先我已經看到了。請發帖作爲答案,我會很高興接受。 – 2014-09-22 21:28:09