選項說明: -n 不要執行 script,僅查詢語法的問題。 -t 執行完隨後的指令,即退出 shell。 -u 當執行時使用到未定義過的變數,則顯示錯誤信息。 -v 執行 sccript 前,先將 script 的內容輸出到螢幕上; -x 執行指令前,先顯示該指令及所下的選項。
[dywang@dywmac zzz]$ cat -n sh03-1.sh 1 #!/bin/bash 2 read -p "請輸入一串數字: " -t 5 num 3 4 num=${num:-"1 2 3 4 5 6 7 8 9} 5 num=$(echo "$num" | sed 's/ /+/g') 6 total=$(echo "$num" | bc) 7 echo $num=$total
sh -n
測試 sh03-1.sh,出現第 4 行找不到配對的雙引號,第 8 行檔案結束語法錯誤。
[dywang@dywmac zzz]$ sh -n sh03-1.sh sh03-1.sh: line 4: unexpected EOF while looking for matching `"' sh03-1.sh: line 8: syntax error: unexpected end of file
[dywang@dywmac zzz]$ sh -v sh03.sh #!/bin/bash read -p "請輸入一串數字: " -t 5 num 請輸入一串數字: num=${num:-"1 2 3 4 5 6 7 8 9"} num=$(echo "$num" | sed 's/ /+/g') total=$(echo "$num" | bc) echo $num=$total 1+2+3+4+5+6+7+8+9=45 exit 0
sh -x
執行 sh03.sh,執行過程會列印出來,且會在行首加上"+"
號表示程式段落。
[dywang@dywmac zzz]$ sh -x sh03.sh + read -p '請輸入一串數字: ' -t 5 num 請輸入一串數字: + num='1 2 3 4 5 6 7 8 9' ++ echo '1 2 3 4 5 6 7 8 9' ++ sed 's/ /+/g' + num=1+2+3+4+5+6+7+8+9 ++ echo 1+2+3+4+5+6+7+8+9 ++ bc + total=45 + echo 1+2+3+4+5+6+7+8+9=45 1+2+3+4+5+6+7+8+9=45 + exit 0