POSIX 셸에서 할당의 어휘 분석

POSIX 셸에서 할당의 어휘 분석

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에 따라야 합니다.

  1. "첫번째 단어"은(는) 무슨 뜻인가요?

    "첫 번째 단어가 나올 때"은(는) 무슨 뜻인가요?

    "첫 번째 단어가 아님"은 언제 의미합니까?

  2. '첫 번째 단어가 나올 때', 'TOKEN에 '=' 문자가 포함되어 있지 않으면 어떻게 될까요?
  3. "첫 번째 단어가 아닌 경우",

    • '='로 시작하면 어떻게 되나요?

    • "다른"이란 무엇입니까?

답변1

  1. "첫번째 단어"은(는) 무슨 뜻인가요?

첫 번째는 피연산자에 대한 플래그가 아닙니다.

"첫 번째 단어가 나올 때"은(는) 무슨 뜻인가요?

피연산자가 아닌 첫 번째 토큰을 구문 분석할 때.

"첫 번째 단어가 아님"은 언제 의미합니까?

이 경우는 동일한 행에 있는 여러 할당을 처리하는 데 사용됩니다.

  1. '첫 번째 단어가 '?'일 때 TOKEN에 '=' 문자가 포함되어 있지 않으면 어떻게 되나요?

피연산자가 아닌 첫 번째 토큰에 기호가 포함되어 있지 않으면 =이는 할당이 아니므로 명령 이름으로 처리됩니다(규칙 1).

  1. "첫 번째 단어가 아닌 경우",

    • '='로 시작하면 어떻게 되나요?

다음과 같이 보일 것입니다:

=123
  • "다른"이란 무엇입니까?

두 개의 "else"가 있는데 첫 번째는 다음과 같습니다.

invalid%variable+name=123

두 번째 "else"는 첫 번째가 아닌 단어에 할당이 포함되지 않은 경우를 다룹니다.

관련 정보