Bash 中的轉義字元

Fumbani Banda 2023年1月30日 2022年5月11日
  1. 轉義字元
  2. 使用雙引號
  3. Bash 中的更多轉義字元
Bash 中的轉義字元

本教程解釋了轉義字元是什麼,並提供了一個資訊豐富的轉義字元列表。

轉義字元

轉義字元是表示除自身之外的替代解釋的字元。沒有明確的列表包含所有需要在 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'
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub