![POSIX 셸에서 할당의 어휘 분석](https://linux55.com/image/101647/POSIX%20%EC%85%B8%EC%97%90%EC%84%9C%20%ED%95%A0%EB%8B%B9%EC%9D%98%20%EC%96%B4%ED%9C%98%20%EB%B6%84%EC%84%9D.png)
POSIX 셸의 어휘 분석의 경우 http://pubs.opengroup.org/onlinepubs/007904875/utilities/xcu_chap02.html
7. [명령어 이름 앞에 값을 지정하세요]
ㅏ. [첫 번째 단어가 나타날 때]
TOKEN에 "=" 문자가 포함되어 있지 않으면 규칙 1이 적용됩니다. 그렇지 않으면 7b가 적용됩니다.
b. [첫 번째 단어 아님]
TOKEN에 문자가 포함된 경우:
— "="로 시작하는 경우 토큰 WORD가 반환되어야 합니다.
— "=" 앞의 모든 문자가 유효한 이름을 형성하는 경우(XBD 섹션 3.231 참조) ASSIGNMENT_WORD 토큰이 반환됩니다. (인용된 문자는 유효한 이름 형성에 참여할 수 없습니다.)
— 그렇지 않으면 ASSIGNMENT_WORD 또는 WORD가 반환되는지 여부가 지정되지 않습니다. 이름 할당은 섹션 2.9.1에 따라야 합니다.
"첫번째 단어"은(는) 무슨 뜻인가요?
"첫 번째 단어가 나올 때"은(는) 무슨 뜻인가요?
"첫 번째 단어가 아님"은 언제 의미합니까?
- '첫 번째 단어가 나올 때', 'TOKEN에 '=' 문자가 포함되어 있지 않으면 어떻게 될까요?
"첫 번째 단어가 아닌 경우",
'='로 시작하면 어떻게 되나요?
"다른"이란 무엇입니까?
답변1
- "첫번째 단어"은(는) 무슨 뜻인가요?
첫 번째는 피연산자에 대한 플래그가 아닙니다.
"첫 번째 단어가 나올 때"은(는) 무슨 뜻인가요?
피연산자가 아닌 첫 번째 토큰을 구문 분석할 때.
"첫 번째 단어가 아님"은 언제 의미합니까?
이 경우는 동일한 행에 있는 여러 할당을 처리하는 데 사용됩니다.
- '첫 번째 단어가 '?'일 때 TOKEN에 '=' 문자가 포함되어 있지 않으면 어떻게 되나요?
피연산자가 아닌 첫 번째 토큰에 기호가 포함되어 있지 않으면 =
이는 할당이 아니므로 명령 이름으로 처리됩니다(규칙 1).
"첫 번째 단어가 아닌 경우",
- '='로 시작하면 어떻게 되나요?
다음과 같이 보일 것입니다:
=123
- "다른"이란 무엇입니까?
두 개의 "else"가 있는데 첫 번째는 다음과 같습니다.
invalid%variable+name=123
두 번째 "else"는 첫 번째가 아닌 단어에 할당이 포함되지 않은 경우를 다룹니다.