_$[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)
古いbashソースはこちら です。特に bash-1.14.7.tar.gz をダウンロードしました。 _documentation/bash.txt
_には以下が含まれます。
算術展開
算術展開では、算術式の評価と結果の置換が可能です。算術展開には2つの形式があります。
_$[expression] $((expression))
_
_$[
_への参照は、 bash-doc-2.0.tar.gzダウンロード の_doc/bash.html
_に含まれておらず、NEWS
ファイルには次のように記述されています。
_
$[...]
_算術展開構文は、$((...))
に代わってサポートされなくなりました。
$((...))
も算術展開の 標準構文 ですが、元のBash実装よりも後に標準に追加されている可能性があります。
ただし、_$[...]
_はBash 5.0ではまだ機能するように見えるため、完全に削除されていません。
GNU bashメーリングリスト のスレッドでは、$[
構文は、$((
がすでに使用されているため、推奨されなくなった初期の構文であると述べていますKorn Shellによる。
this site によると、bash 3.2.48のマニュアルには$[
構文への参照が含まれていました。したがって、この参照は3.2.51で削除されたと考えられます。