シェル算術: $を前に置かずに変数を参照

シェル算術: $を前に置かずに変数を参照

私はBashのマニュアルでこれを読んで驚きました。算術評価:

式内では、シェル変数はパラメーター拡張構文を使用せずに名前で参照することもできます。

私はそれを試してみましたが、実際にはvar動作は次のとおりです$var

❯ var=9
❯ echo $(( var + 5 ))
14
❯ (( var < 10 )) && echo 'single digits!'
single digits!

これは悪い習慣と見なされますか?他のシェルに移植可能ですか、それともBashismですか?

ベストアンサー1

$算術評価に変数を使用しないことは悪い習慣とは見なされません。移植性の点では((…))通常POSIXではないため、ダッシュなどのシェルでは機能しません。 zshとkshで動作します。一方、$((…))POSIXにあり、すべての最新のshスタイルシェルで動作します。

おすすめ記事