選項說明:
-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