Linuxのシェルスクリプトにおいて、

特殊な変数の
「$-」
って何ですか?

参考書では、「シェル起動時のフラグ」とあるのですが、どんなときに使うどんな機能なのでしょうか?

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2006/09/19 17:47:00
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Kumappus No.1

回答回数3784ベストアンサー獲得回数185

ポイント68pt

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のところを参照してください)

id:hina1981

ありがとうございます。

現在のシェルの属性のようなものが格納されていると考えればよいのでしょうか。

それぞれの文字の意味は、

---

-h

コマンドの位置を記憶し、実行時にこれを引きます。これはデフォルトで有効になっています。

-B

シェルはブレース展開 (前述の ブレース展開 を参照) を実行します。これはデフォルトで有効です。

---

ということなのですね。

今まで、下記のように表示されていてナゾだったのが解決しました。

# echo $-

himBH

ありがとうございました。

2006/09/19 10:51:17

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません