문자열은 산술 표현식인가요?

문자열은 산술 표현식인가요?

Bash에서는 산술 표현식이 필요한 문자열을 사용합니다.

$ (( hello ))
$ echo $?
1

$ echo $(( hello ))
0

$ let aaa=hello
$ echo $?
1
$ echo $aaa
0

오류가 보고되지 않았습니다. 그렇다면 문자열은 산술 표현식인가요? 그렇다면 문자열의 값은 항상 0이 될까요?

내 질문은 댓글에서 비롯됩니다.할당으로 시작하는 명령과 함께 명령을 사용할 수 없는 이유는 무엇입니까?

답변1

Bash 산술 표현식(예 $((3+2)): )에서는 Bash와 마찬가지로 변수를 사용할 수 있습니다. 그러나 이 특별한 경우에는 $변수를 나타내기 위해 문자를 사용할 필요가 없습니다 .

ghoti ~$ foo=5
ghoti ~$ echo $((foo))
5
ghoti ~$ echo $((foo*2))
10
ghoti ~$ echo $(($foo*2))
10

귀하의 질문에 대한 의견에서 언급했듯이 hello귀하의 경우 이것은 생각하는 문자열이 아니라 값이 0인 정의되지 않은 변수의 이름입니다.

관련 정보