2016-05-25 11 views
1

今日、変数 '$ - 'はランダムな文字列であることがわかりましたが、それが何を表しているのか分かりません。

➜ ~ echo $- 
569JNRTXZghikms 

そして私は値を変更することはできません。

➜ ~ -='sss' 
zsh: command not found: -=sss 
➜ ~ 

をそして、それがあったドッキングウィンドウで:

➜ ~ docker run --rm -ti ubuntu   
[email protected]:/# echo $- 
himBH 

または:

➜ ~ docker run --rm -ti alpine ash 
/# echo $- 
smi 

それが価値ですんシステムに関連する?

+0

例を使って説明します。http://tldp.org/LDP/abs/html/internal.html#EX34 – Inian

+0

報告される内容は、 'set'でシェルオプションを変更することで変更できます。 –

+1

あなたは 'bash'という質問にタグを付けましたが、明らかに' zsh'を使用しています。 Dockerは 'bash'を使用しています。そのため、文字列が異なります。タグを正しい値に編集してください。 –

答えて

0

$-シェルに現在のオプションが設定されています。 the Bash Reference Manualから

「+」を使用ではなく、「 - 」これらのオプションはオフになります。また、シェルの起動時に、 オプションを使用することもできます。オプションの現在の設定 は$ - にあります。

残りのN個の引数は、位置パラメータであり、 を順番に$ 1、$ 2、... $ Nに割り当てます。特殊パラメータ#はNに設定されます。

無効なオプションが指定されていない限り、戻り値のステータスは常にゼロです。

0

$-は、シェルに現在設定されているオプションを提供します。

利用可能なさまざまな他の特別なドルの変数のため、この質問から受け入れ答えを参照してください:あなたはzshを使用しているように、このコマンドを実行

What are the special dollar sign shell variables?

0

を:

LESS=+/'PARAMETERS SET BY THE SHELL' man zshparam 

見つけること:

- <S>フラグが指定されています呼び出し時にシェルに渡すか、またはsetまたはsetoptコマンドを使用します。

bashのために

(ドッカーから)、次のコマンドを実行します。

LESS=+/'^ *Special Parameters' man bash 

読むには:

を - ことで、呼び出し時に指定されている現在のオプションフラグに展開set組み込みコマンド、またはシェル自体で設定された組み込みコマンド(-iオプションなど)。

関連する問題