bashでドル記号の後に角括弧$ […]が続くとはどういう意味ですか?


34

$[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)


3
標準に関する質問に明示的に答えるには:(廃止された)bash特定の$[...]構文は非標準です。$((...))(それが由来ksh)POSIX標準です。
ジャニス

2
Ubuntu 11.04の場合:man bash | grep -E '\$\['。出力:古い形式$ [expression]は非推奨であり、今後のバージョンでは削除されます
Cyrus

あなたが検索することが次のように指摘されることになった発生した場合、あなたのgrepが失敗することができるように(別々に表示されるように、その後manユーティリティによって解釈される)のmanページは_t_h_i_sのようなものを含めることができます
オリヴィエ・デュラック

回答:


19

ここで古いbashソースを見つけることができます。特に、bash-1.14.7.ta​​r.gzをダウンロードしました。にありdocumentation/bash.txtます:

算術展開

算術展開により、算術式の評価と結果の置換が可能になります。算術展開には2つの形式があります。

     $[expression]

     $((expression))

参照はする$[になくなっているdoc/bash.htmlからのbash-DOC-2.0.tar.gzのダウンロードNEWSファイルのことを言及します。

$[...]代わりに、算術展開構文はサポートされなくなりました$((...))

$((...))は算術展開の標準構文でもありますが、元のBash実装よりも後に標準に追加された可能性があります。

ただし、$[...]Bash 5.0ではまだ機能しているようですので、完全に削除されているわけではありません。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.