백슬래시가 포함된 변수 인쇄

백슬래시가 포함된 변수 인쇄

나는 다음과 같은 것을 가지고 있습니다 :

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"'은 쉘 언어 구문의 다른 참조 형식입니다.

관련 정보