bash 파서를 작성하려고 합니다. 많은 자료에서 이것을 언급합니다.위키피디아
내가 막힌 부분 중 하나는 다음이 작동하는 이유입니다.
echo "$(echo "hi")" # output => hi
Wiki에 따르면 명령 대체 전에 따옴표가 구문 분석됩니다. 이 경우 첫 번째 큰따옴표 세트를 구문 분석할 때 오류가 발생하지 않는 이유는 무엇입니까?"$(echo "
답변1
링크된 기사는 다음과 같습니다.
제외한 모든 캐릭터
$
,"
및 그들이 가졌을 수 있는 특별한 의미를 잃습니다`
.\
[강조 내 것]
코드에서 $
무슨 일이 일어나고 있는지$(
아직특별한. $( )
명령 대체 구문입니다. 명령 대체에 관해서는,같은 웹사이트에서:
명령 대체를 입력하면 쉘이 완전히 새로운 인용 컨텍스트를 시작한다는 점은 주목할 가치가 있습니다. 즉, 대체 내부의 큰따옴표는 대체 외부의 큰따옴표와 일치하지 않습니다.