如何在命令列中逸出特殊字元

閱讀 3:00·字數 905·發佈 
Youtube 頻道
訂閱 130

先決條件

閱讀本節的先決條件是對逸出概念有所掌握,你可以檢視程式設計教學逸出,逸出字元,逸出序列介紹一節來了解相關資訊。

在命令提示字元中逸出特殊字元

在 Windows 命令提示字元中,你可以使用逸出字元^來逸出特殊字元。

下面,我們使用命令echo,告知使用者檢視環境變數PATH的方法,其中,%需要書寫為^%進行逸出,如果直接寫為echo %PATH%,將導致輸出環境變數PATH的值。

echo 請使用 echo ^%PATH^% 檢視環境變數 PATH
請使用 echo %PATH% 檢視環境變數 PATH

Windows 命令提示字元不支援在 " 中使用 ^ 進行逸出

需要註意的是,你無法在"中使用逸出字元^進行逸出,他將顯示其自身。

再次演示命令echo,並分別使用'"括住一些內容,可以看到輸出結果的不同。

echo 湯姆說 '使用 echo ^%OS^% 檢視環境變數 OS'
湯姆說 '使用 echo %OS% 檢視環境變數 OS'
echo 湯姆說 "使用 echo ^%OS^% 檢視環境變數 OS"
湯姆說 "使用 echo ^%OS^% 檢視環境變數 OS"

如何在 Windows 批次檔中逸出 %?

bat批次檔中,對%的逸出比較特別,需要使用%%而不是^%

在 PowerShell 中逸出特殊字元

PowerShell 中,你可以使用逸出字元`來逸出特殊字元。

這裏,使用命令Write-Output來顯示一段資訊,其中`n`t分別被逸出為換行字元和定位字元。

Write-Output "人員名單`n`t鹹蛋超人`n`t甜蛋超人"
人員名單
鹹蛋超人
甜蛋超人

在 UNIX/Linux/macOS 中逸出特殊字元

在 UNIX/Linux/macOS 的 Shell 程式中,通常可以使用逸出字元\逸出特殊字元。

下面的將逸出為空格,Shell 將跳躍至含有空格的資料夾custom lib

cd custom\ lib

不支援在單引號字串中進行逸出

PowerShell 以及 UNIX/Linux/macOS 中的大部分 Shell 程式,僅支援在雙引號字串,或可隱含轉換為字串的文字中進行逸出,單引號中的逸出字元將表示其自身,沒有逸出效果。

PowerShell 範例中的兩個"去掉,輸入的文字將隱含的轉換為字串(不能包含空格),其輸出結果和之前一致。

Write-Output 人員名單`n`t鹹蛋超人`n`t甜蛋超人
人員名單
鹹蛋超人
甜蛋超人

PowerShell 範例中的"改為',字元`不再具有逸出的作用。

Write-Output '人員名單`n`t鹹蛋超人`n`t甜蛋超人'
人員名單`n`t鹹蛋超人`n`t甜蛋超人