引用文字文字
本段中的所有示例都列印出該行
!"#$&'()*;<=>? @[\]^`{|}~
反斜槓引用下一個字元,即按字面解釋下一個字元。一個例外是換行符:反斜槓換行符擴充套件為空字串。
echo \!\"\#\$\&\'\(\)\*\;\<\=\>\?\ \ \@\[\\\]\^\`\{\|\}\~
單引號(正向引號'
,也稱為撇號)之間的所有文字都按字面列印。即使反斜槓代表自己,也不可能包含單引號; 相反,你可以停止文字字串,包含帶反斜槓的文字單引號,然後再次啟動文字字串。因此,4 字元序列'\''
有效地允許在文字字串中包括單引號。
echo '!"#$&'\''()*;<=>? @[\]^`{|}~'
# ^^^^
Dollar-single-quote 像許多其他程式語言一樣啟動字串文字 $'…'
,其中反斜槓引用下一個字元。
echo $'!"#$&\'()*;<=>? @[\\]^`{|}~'
# ^^ ^^
雙引號 "
分隔半文字字串,其中只有字元 "
\
$
和`
保留其特殊含義。這些字元需要在它們之前使用反斜槓(請注意,如果反斜槓後跟其他字元,則反斜槓仍然存在)。當包含變數或命令替換時,雙引號最有用。
echo "!\"#\$&'()*;<=>? @[\\]^\`{|}~"
# ^^ ^^ ^^
echo "!\"#\$&'()*;<=>? @[\]^\`{|}~"
# ^^ ^ ^^ \[ prints \[
互動式地,請注意 !
觸發雙引號內的歷史擴充套件:!oops
查詢包含 oops
的舊命令; \!oops
不做歷史擴張但保持反斜槓。這不會發生在指令碼中。