나는 다음과 같은 것을 가지고 있습니다 :
A=$(curl https://mysite.com)
그리고 컬 요청은 문자열을 반환합니다 \"Hello World\"
. 이제 A
다음 중 하나를 사용하여 콘솔에 인쇄 하고 싶을 때 :
echo "$A"
printf '%s' "$A"
사라졌습니다 \
. 그냥 이라고 적혀 있습니다 "Hello World"
. \"Hello World\"
콘솔 에 들어가려면 어떻게 해야 합니까 ?
답변1
백슬래시가 표시되지 않으면 printf '%s' "$A"
백슬래시가 존재하지 않는 것입니다. curl https://mysite.com
개별적으로 확인 하실 수 있습니다 .
어쩌면 다음 출력을 보고 혼란스러울 수도 있습니다.
bash-5.0$ typeset -p A
declare -- A="\"Hello World\""
이는 변수를 정의하는 데 사용할 수 있는 bash의 쉘 코드 출력입니다 $A
. 셸 언어의 구문에서는 다음 내용을 이스케이프하여 이것이 닫는 따옴표가 아닌 데이터의 일부임을 셸에 알리는 데 \
사용됩니다 ."
"
다음과 같은 출력도 있을 수 있습니다.
declare -- A='"Hello World"'
동일하게 작동하며 더 안전합니다. 또는 A=\"Hello\ World\"
등 $'"Hello World"'
은 쉘 언어 구문의 다른 참조 형식입니다.