如果创建了以下奇怪的目录:
a"
b"
在 bash 或 zsh 中,可以执行以下操作: cd a$'\n'b 或 cd 'a'$'\n''b'
破折号相当于什么?
答案1
唯一的等价物基本上就是您所写的:
cd a"
"b
(或其他一些报价排列)。字符串文字可以包含空格,包括换行符,并将其按字面意思保留为所在单词的一部分。您不能使用反斜杠作为换行符,因为这会调用换行符连接并且只是完全删除换行符,因此您可以选择单引号或双引号。
在这种情况下你也可以使用命令替换与例如printf
处理相同的\n
转义序列:
cd "a$(printf '\nb')"
决赛b
是必须的内printf
因为尾随换行符是通过命令替换删除的,所以如果文件名实际上以换行符结尾,则这将不起作用。您还可以将其用于其他转义,例如\a
BEL 字节。
$'...'
对于ANSI-C 引用,没有直接的 POSIX 或破折号等效项(然而)。