引数を整数に変換して算術演算を実行し、印刷する方法を見つけようとしています。たとえば、次のようになりますaddOne.sh
。
echo $1 + 1
>>sh addOne.sh 1
prints 1 + 1
ベストアンサー1
Bashでは、「算術を実行するために引数を整数に変換」しません。 Bashでは、変数は状況に応じて整数または文字列として扱われます。
(整数コンテキストで変数を使用する場合、変数には有効な整数のように見える文字列を含める必要があります。そうしないとエラーが発生します。)
算術演算を実行するには、算術スプレッド演算子を呼び出す必要があります$((...))
。たとえば、
$ a=2
$ echo "$a + 1"
2 + 1
$ echo "$(($a + 1))"
3
または通常好まれます:
$ echo "$((a + 1))"
3
bash(ksh93、zsh、またはyashとは反対)は、次の操作のみを実行することに注意してください。整数算数。浮動小数点数(小数点数)がある場合に役立つ可能性がある他のツールがあります。たとえば、次のようにしますbc
。
$ b=3.14
$ echo "$(($b + 1))"
bash: 3.14 + 1: syntax error: invalid arithmetic operator (error token is ".14 + 1")
$ echo "$b + 1" | bc -l
4.14
あるいは、bashの代わりに浮動小数点演算をサポートするシェルを使用することもできます。
zsh> echo $((3.14 + 1))
4.14