Shell-Script
Dash - 如何轉義奇怪的路徑字元
如果創建了以下奇怪的目錄:
a" b"
在 bash 或 zsh 中,可以執行以下操作: cd a $ ‘\n’b or cd ‘a’ $ ‘\n’‘b’
dash的等價物是什麼?
唯一等價的基本上是你寫的:
cd a" "b
(或其他一些報價安排)。字元串文字可以包含空格,包括換行符,並將其保留為它所在單詞的一部分。您不能使用反斜杠作為換行符,因為這會呼叫換行符連接並且只是完全刪除換行符,所以無論是單個還是雙引號是您的選擇。
在這種情況下,您還可以使用帶有 eg的命令替換
printf
來處理相同的\n
轉義序列:cd "a$(printf '\nb')"
final
b
是必需*的,printf
*因為尾隨換行符被命令替換刪除,所以如果文件名字面上以換行符結尾,這將不起作用。您還可以將它用於其他轉義,例如\a
BEL 字節。
$'...'
ANSI-C 引用沒有直接的 POSIX 或破折號等效項(尚未)。