特殊な変数の
「$-」
って何ですか?
参考書では、「シェル起動時のフラグ」とあるのですが、どんなときに使うどんな機能なのでしょうか?
http://www.linux.or.jp/JM/html/GNU_bash/man1/bash.1.html
sh(bash)自体についているオプションを保持しています。
例えば、
#!/bin/bash
echo $-;
というようなスクリプト(test.sh)を定義しておいて
bash test.sh
を実行するとデフォルトで有効になっている-hフラグ、-Bフラグが立ってるよいうことで
hB
と表示されますし、
bash -aC test.sh
を実行すると
ahBC
と表示されます。
(※各フラグの意味に付いてはURLのシェルの組み込みコマンドのsetのところを参照してください)
ありがとうございます。
現在のシェルの属性のようなものが格納されていると考えればよいのでしょうか。
それぞれの文字の意味は、
---
-h
コマンドの位置を記憶し、実行時にこれを引きます。これはデフォルトで有効になっています。
-B
シェルはブレース展開 (前述の ブレース展開 を参照) を実行します。これはデフォルトで有効です。
---
ということなのですね。
今まで、下記のように表示されていてナゾだったのが解決しました。
# echo $-
himBH
ありがとうございました。