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"|