Shell-Script

Dash - 如何轉義奇怪的路徑字元

  • January 31, 2019

如果創建了以下奇怪的目錄:

a"␤

b"

在 bash 或 zsh 中,可以執行以下操作: cd a $ ‘\n’b or cd ‘a’ $ ‘\n’‘b’

dash的等價物是什麼?

唯一等價的基本上是你寫的:

cd a"
"b

(或其他一些報價安排)。字元串文字可以包含空格,包括換行符,並將其保留為它所在單詞的一部分。您不能使用反斜杠作為換行符,因為這會呼叫換行符連接並且只是完全刪除換行符,所以無論是單個還是雙引號是您的選擇。

在這種情況下,您還可以使用帶有 eg的命令替換printf來處理相同的\n轉義序列:

cd "a$(printf '\nb')"

finalb是必需*的,printf*因為尾隨換行符被命令替換刪除,所以如果文件名字面上以換行符結尾,這將不起作用。您還可以將它用於其他轉義,例如\aBEL 字節。

$'...'ANSI-C 引用沒有直接的 POSIX 或破折號等效項(尚未)。

引用自:https://unix.stackexchange.com/questions/497842