我有一組管道命令可以在命令行上工作,但在腳本中運行時不會產生輸出。Bash命令在cmd行但在腳本中不起作用
的命令是:
STRNG=$(ip mroute show | tr -d "()," | awk ' {print "/usr/sbin/smcroute -a eth3", $1, $2, "vtun0 vtun1"}'); echo "$STRNG"`
,輸出是:
/usr/sbin/smcroute -a eth3 192.0.1.19 224.1.1.1 vtun0 vtun1
/usr/sbin/smcroute -a eth3 192.0.1.18 224.1.1.1 vtun0 vtun1
但是,如果我把同樣的命令行成一個劇本,我沒有得到任何來自echo "$STRNG"
命令的輸出。
我試圖做的是在執行每$STRNG
行一個命令,但是由於各種原因出現$STRNG
不包含腳本中的任何文字,而$STRNG
確實在命令行運行時包含文本。我相信這是由於對bash的理解有限。
有人可以幫助我嗎?
腳本是什麼樣的?(至少第一行) – Fosco 2010-07-21 19:01:30
嘗試使用-x運行它: /bin/bash -x your_script.sh 它會轉儲調試信息。 – Scharron 2010-07-21 19:03:02