나는 이런 일을 할 수 있기를 원합니다
VAR='\\'
echo "$VAR"
그리고 결과를 얻으세요
\\
내가 실제로 얻는 결과는
\
사실, \\가 많이 포함된 매우 긴 문자열이 있는데, 이를 인쇄하면 bash는 첫 번째 \\를 제거합니다.
답변1
내장 명령이 지정된 문자열과 개행 문자를 그대로 출력하려면 다음이 bash
필요합니다.echo
# switch from PWB/USG/XPG/SYSV-style of echo to BSD/Unix-V8-style of echo
# where -n/-e options are recognised and backslash sequences not enabled by
# default
shopt -u xpg_echo
# Use -n (skip adding a newline) with $'\n' (add a newline by hand) to make
# sure the contents of `$VAR` is not treated as an option if it starts with -
echo -n "$VAR"$'\n'
또는:
# disable POSIX mode so options are recognised even if xpg_echo is also on:
set +o posix
# use -E to disable escape processing, and we use -n (skip adding a newline)
# with $'\n' (add a newline by hand) to make sure the contents of `$VAR` is not
# treated as an option if it starts with -
echo -En "$VAR"$'\n'
이는 쉘에 따라 다르 bash
므로 다른 쉘에 대해서는 다른 접근 방식을 취해야 하며 echo
일부 구현에서는 임의의 문자열을 출력할 수 없다는 점에 유의하십시오.
printf
그러나 여기서는 표준 명령을 사용하는 것이 더 좋습니다 .
printf '%s\n' "$VAR"
바라보다왜 printf가 echo보다 나은가요?더 알아보기.
답변2
2개 대신 4개의 백슬래시를 사용하세요.