$[expr]
算術拡張を実行するには$((expr))
:しかし、$[
bashのマニュアルには言及がありません。このコマンドは結果を提供しません。
gunzip -c /usr/share/man/man1/bash.1.gz | grep -E '\$\['
この演算子は何ですか?その行動はどこでも標準化されていますか?
私のbashバージョン:GNU bash、バージョン3.2.51(1)-release(x86_64-apple-darwin13)
答え1
GNU bashメーリングリストのスレッドからこれは、その$[
構文が初期構文であり、$((
Kornシェルで後者を使用するため、廃止されたことを示します。
~によるとこのウェブサイト, bash 3.2.48 マニュアルには$[
構文への参照が含まれています。したがって、この参照は3.2.51で削除されたと推測されます。
答え2
あなたは見つけることができます以前のbashソースコードはここにあります。。特にダウンロードするときbash-1.14.7.tar.gz。あなたはdocumentation/bash.txt
以下を見つけることができます:
算術拡張
算術拡張を使用すると、算術式を評価して結果を変更できます。算術拡張は2つの形式で提供されます。
$[expression] $((expression))
$[
への参照doc/bash.html
bash-doc-2.0.tar.gz ダウンロードドキュメントNEWS
には次のものがあります。
$[...]
算術拡張構文はサポートされなくなりました$((...))
。
$((...))
道路標準構文算術拡張に使用されますが、おそらくもともとBashの実装よりも後で標準に追加されたでしょう。
しかし、$[...]
Bash 5.0ではまだ動作しているように見えるため、完全には削除されませんでした。