Bash ANSI C 引用未正确引用换行符

Bash ANSI C 引用未正确引用换行符

bash 中的 ANSI C 引用应该以与 C(或带单引号的 python)相同的方式读取字符串。

printf $'"Hello, World!\\n"'

#expected output (no newline, the slash is escaped)
"Hello, World!\n"

#actual output (one newline)
"Hello, World!
"

但它似乎无法正常工作。这是一个错误吗?

答案1

你用printf错了。您已在需要格式字符串的位置提供了字符串,并进行了相应的printf解释\n。使用正确的格式字符串并提供 ANSI-C 引用的字符串作为参数:

$ printf '%s\n' $'"Hello, World!\\n"'
"Hello, World!\n"

或者,为了更清楚地显示参数在格式字符串中的位置:

$ printf '|%s|\n' $'"Hello, World!\\n"'
|"Hello, World!\n"|

相关内容