第 5 章

5.1 第 78 頁,printf 的第 15 個用例,並沒有錯誤喔

有熱心網友來信,說第 15 個用例 "'A" 中的 A 後面少了一個單引號....

其實,這是正確的寫法。茲說明如下:

在 Bash 中,使用 printf 時,若字元左方(或稱:在字元前面)有單引號或雙引號, 則該字元會替換成對應的 ASCII 值。

因此,以下兩種寫法都是可以的:

1. 若字元前導的是單引號,則要用雙引號 " " 含括,以免在命令列解譯錯誤,例如:
printf "%x\n" "'A"

2. 若字元前導的是雙引號,則要用單引號 ' ' 含括,以免在命令列解譯錯誤,例如:
printf "%x\n" '"A'

以上兩個用例,都會印出字元 A 的 ASCII 值 41(16 進位)。

由於 Bash 規定如此,因此,就不需要再於字元的後面加上對稱的單引號或雙引號了。