文字列は算術式ですか?

文字列は算術式ですか?

Bashは算術式を必要とする文字列を使用します。

$ (( hello ))
$ echo $?
1

$ echo $(( hello ))
0

$ let aaa=hello
$ echo $?
1
$ echo $aaa
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の未定義変数の名前です。

おすすめ記事