Bash 中的轉義字元
Fumbani Banda
2023年1月30日
2022年5月11日
本教程解釋了轉義字元是什麼,並提供了一個資訊豐富的轉義字元列表。
轉義字元
轉義字元是表示除自身之外的替代解釋的字元。沒有明確的列表包含所有需要在 bash 中轉義的字元。但是,推薦的一般規則是如果有疑問,就轉義
。
使用雙引號
在轉義字元周圍使用雙引號可以保留其字面意義。
讓我們使用星號 *
和 echo 命令來演示這一點。在終端上,鍵入 echo *
會顯示當前目錄中的所有檔案。但是,將 *
括在雙引號中只會在標準輸出中顯示星號。
echo "*"
它顯示以下輸出。
*
Bash 中的更多轉義字元
沒有明確的列表包含所有需要在 bash 中轉義的字元。你可以通過測試其中一些字元來找出答案。以下 bash 指令碼提供了對哪些字元需要轉義以及轉義字元的表示的洞察。
for x in {0..127} ;do
printf -v char \\%o $x
printf -v char $char
printf -v res "%q" "$char"
esc=Escape
[ "$char" = "$res" ] && esc=-
printf "%02X %s %-7s\n" $x $esc "$res"
done | sort
該指令碼顯示下面的輸出。我只顯示了前 11 個字元。第一個欄位具有位元組的十六進位制值,如果需要對字元進行轉義,則第二個檔案具有 Escape
,如果不需要,則使用 -
。最後一部分顯示了字元在轉義時的表示。
00 Escape ''
01 Escape $'\001'
02 Escape $'\002'
03 Escape $'\003'
04 Escape $'\004'
05 Escape $'\005'
06 Escape $'\006'
07 Escape $'\a'
08 Escape $'\b'
09 Escape $'\t'
0A Escape $'\n'
0B Escape $'\v'
0C Escape $'\f'
0D Escape $'\r'
0E Escape $'\016'
0F Escape $'\017'
10 Escape $'\020'
Author: Fumbani Banda