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인 정의되지 않은 변수의 이름입니다.