![백틱 설명](https://linux55.com/image/67428/%EB%B0%B1%ED%8B%B1%20%EC%84%A4%EB%AA%85.png)
이 두 명령의 차이점이 무엇인지 알고 싶습니다.
echo ` echo `date` `
echo ` echo \`date\` `
\가 문자를 이스케이프하는 데 사용된다는 것을 알고 있지만 이 특정 맥락에서는 이해할 수 없습니다. 우리는 왜 사용하지 않는가?
echo \` echo \`date\` \`
대신 ` 문자를 이스케이프 처리해야 한다면 어떻게 될까요?
답변1
$(cmd)
중첩될 수 있는 다른 백틱 표현식을 사용할 수 있습니다 . 반면에 백틱 내부 매개변수를 변수로 생성하여 내부적으로 사용할 수 있습니다.
echo $(echo `date`)
echo $(echo $(date))
x=`date` echo `echo $x`
따옴표를 이스케이프 처리하지 않고 \`를 사용하면
echo $(echo )date$( )
쉘은 인수를 구문 분석하여 표현식의 인수를 평가하려고 시도합니다. 즉:
echo \` echo \`date\` \`
argv[0]="echo", argv[1]="`", argv[2]="echo", argv[3]="`date`", argv[4]="`"
나는 당신이 이해할 수 있도록 다른 예를 남깁니다.