特殊符號:函數
$$ 進程號this
$* 和 $@ 都表示傳遞給函數或腳本的全部參數,不被雙引號(" ")包含時,都以"$1" "$2" … "$n" 的形式輸出全部參數。
可是當它們被雙引號(" ")包含時,"$*" 會將全部的參數做爲一個總體,以"$1 $2 … $n"的形式輸出全部參數;"$@" 會將各個參數分開,以"$1" "$2" … "$n" 的形式輸出全部參數。spa
${var} | 變量原本的值 |
${var:-word} | 若是變量 var 爲空或已被刪除(unset),那麼返回 word,但不改變 var 的值。 |
${var:=word} | 若是變量 var 爲空或已被刪除(unset),那麼返回 word,並將 var 的值設置爲 word。 |
${var:?message} | 若是變量 var 爲空或已被刪除(unset),那麼將消息 message 送到標準錯誤輸出,能夠用來檢測變量 var 是否能夠被正常賦值。 若此替換出如今Shell腳本中,那麼腳本將中止運行。 |
${var:+word} | 若是變量 var 被定義,那麼返回 word,但不改變 var 的值。 |
echo -e 轉義; -E 禁止轉義進程
`` 和 $() 等價;ip
表達式和運算符之間要有空格, eg. '2+2' 是錯的, '2 + 2'則是對的, 乘法要用 '\*'ci
條件表達式要放在[]中間,而且要有空格,eg. [$a==$b] 是錯的, [ $a == $b ] 則是對的 字符串
= 判斷兩個字符串相等; == 判斷兩個數字相等 -o 或; -a 與; -z 字符串長度是否爲0; -n 字符串長度是否不爲0string
單引號字符串的限制:table
雙引號的優勢:class