緊跟着的 \
的字符字面量會被保留,輸出的時候去掉 \
。html
一個特例是 \newline
(反斜槓+換行符),這個組合會被當作長字符串換行,輸出的時候將 \newline
(反斜槓+換行符)移除、忽略。express
$ echo \a a $ echo \aaa aaa $ echo aaa\ > ssss aaassss
沒法使用轉義bash
$ echo 'aaa' aaa
基本做用:保留字面量翻譯
特例:code
'$':htm
# $name 引用變量名 $ test=asdfg $ echo "$test" asdfg $ echo "11${test}22" 11asdfg22 # $(command) 執行命令,將結果擴展爲字符串 $ echo "aaaa$(ls)ssss" aaaa1.txt 2.txtssss # $(( expression )) 執行算術表達式,將結果擴展爲字符串 $ echo "aaaa$(( 3+4 ))ssss" aaaa7ssss
'`':字符串
# `command` 執行命令,將結果擴展爲字符串 $ echo "aaaa`ls`ssss" aaaa1.txt 2.txtssss
'\':get
# 反斜槓+普通字符 $ echo "\a" \a # '$', '`', '"', '\', or 'newline'(換行) # 反斜槓+以上幾個特殊符號,輸出的時候反斜槓會被刪除;其中,`newline` 也會被刪除 $ echo "\$\`\"==\ > ==" $`"==== # 無論開啓或者關閉歷史擴展的功能,`反斜槓+!`的輸出都同 `反斜槓+普通字符` 同樣 $ echo "\!-1" \!-1
history expansion 開啓時,'!':string
# 若是開啓了歷史擴展的功能 $ echo "!-1" //打印上一條歷史命令 echo "echo "\a"" echo a
字符串中,以反斜槓開頭的字符,若是符合 ANSI C 標準的轉義字符,會被轉義後擴展字符串。io
$ echo $'a\naa' a aa
會基於當前語言環境對 string 進行翻譯。略。