$ my-num=1
my-num=1: command not found
$ mynum=1
첫 번째 과제가 실패한 이유를 알고 싶습니다.
bash는 왜 그것이 명령이라고 생각합니까?
-
Bash에 특수문자가 있나요?
감사해요.
답변1
POSIX 표준에는 다음이 명시되어 있습니다.
3.229 Name
In the shell command language, a word consisting solely of underscores, digits, and
alphabetics from the portable character set. The first character of a name is not a digit.
Shell Syntax Rules의 POSIX 표준 섹션에는 다음과 같이 명시되어 있습니다.
7. [Assignment preceding command name]
a. [When the first word]
If the TOKEN does not contain the character ’=’, rule 1 is applied.
Otherwise, 7b shall be applied.
b. [Not the first word]
If the TOKEN contains the equal sign character:
— If it begins with ’=’, the token WORD shall be returned.
— If all the characters preceding ’=’ form a valid name (see XBD Section 3.229, |
on page 65), the token ASSIGNMENT_WORD shall be returned. (Quoted
characters cannot participate in forming a valid name.)
— Otherwise, it is unspecified whether it is ASSIGNMENT_WORD or WORD
that is returned.
Assignment to the NAME shall occur as specified in Section 2.9.1 (on page 2263).
변수 이름에 유효하지 않은 문자가 포함되어 있으므로 할당을 시도하지 않고 단순한 명령으로 처리합니다.