Bashのビルトインコマンド”declare”の使い方紹介(その1)
シェルスクリプトサンプルコードでよく見かけるtypesetやdeclareってなに? の続きです。
( declare
や typedef
について知りたい方は前回のエントリのほうが参考になるかもしれません。 )
Bash のビルトインコマンドである declare を使って変数を定義できますが、 オプションを指定することで真価を発揮します 。
declareオプションを見ていきましょう。
オプションは3つに分類できます。(僕が勝手に分類した)
- 変数の型を定義するもの
- 変数の利用を制限・開放するもの
- その他
検証環境
declareオプション(変数の型を定義するもの)
-A
オプション
連想配列として変数を定義できます。
ちなみに、変数の定義タイミングで値を代入するリテラル記述も存在します。
-a
オプション
配列として変数を定義できます。
添字には数字が使われる。
こうやって見ると、連想配列変数と配列変数にさほど違いがないように見えます。少なくとも変数の参照方式には差異がないです。
強いて言えば、配列変数を添え字無しで echo
した場合は最初の要素が出力されるということぐらいです。
実は両者は同じもので、 添え字無しで echo
した場合は 添字が0扱いで出力されているだけなんじゃないか? という疑問が湧いたので試してみます。
どうやら正解。
-i
オプション
整数として変数を定義。
= の右辺を数式として認識し評価結果を代入します。
整数しか取扱できません。
意地が悪い性分ですので、文字列を足し算してみたらどうか試してみたくなりました。
8進数演算可能なことがわかったのは大きい。特に会社メンバで Clash of code で戦うときにかなりの強みになります(笑)
とはいえ、実は別の記述で代用可能です。
文字列が格納されない安心感は生まれるが、数値演算は $((...))
で囲ってやったほうが読みやすいと思います。
ひとこと
今日はここまで。
時間がないのでまた次回。
ディスカッション
コメント一覧
まだ、コメントがありません