Antworten:
Sie repräsentieren die Werte der Flags der Shell. Dies wird von POSIX definiert :
-
(Bindestrich.) Erweitert sich auf die aktuellen Optionsflags (die aus einer Buchstabenfolge verketteten Optionsnamen mit einem Buchstaben), wie beim Aufruf, durch den
set
speziellen integrierten Befehl oder implizit durch die Shell angegeben.
Das Zsh-Handbuch erwähnt es kurz:
- <S> Flags, die beim Aufruf oder durch die Befehle
set
oder an die Shell übergebensetopt
werden.
ebenso wie das Bash-Handbuch in der Beschreibung von set
:
Die aktuellen Optionen finden Sie unter
$-
.
Um die Ausgabe von zu verstehen echo $-
, müssen Sie die Optionen im Handbuch Ihrer Shell nachschlagen. Zum Beispiel in Bash, echo $-
Ausgängen himBHs
für mich, was bedeutet , dass die -h
, -m
, -B
und -H
Optionen aktiviert sind (siehe help set
Details), dass die Shell interaktiv ist ( -i
) und von der Standardeingabe lesen ( -s
).
man bash
oder help set
wie bereits erwähnt als man set
.
c
Flagge bedeutet? Ich sehe es eingestellt, wenn sich rsync anmeldet und meine .bashrc ausführt. Das Bash-Handbuch für set
wird nicht erwähnt c
. Ich führe bash 4.2.46 (2) -release aus.
-c
Befehlszeilenoption wider ; siehe bash -c 'echo $-'
.
Aus dem Bash-Referenzhandbuch :
setze [+ abefhkmnptuvxBCEHPT] [+ o Optionsname] [arg ...]
Ohne Optionen werden Name und Wert jeder Shell-Variablen in einem Format angezeigt, das als Eingabe zum Festlegen oder Zurücksetzen der aktuell eingestellten Variablen wiederverwendet werden kann.
...
Die Optionen sind standardmäßig deaktiviert, sofern nicht anders angegeben. Wenn Sie + anstelle von - verwenden, werden diese Optionen deaktiviert. Die Optionen können auch als Argumente für einen Aufruf der Shell angegeben werden. Die aktuellen Optionen finden Sie in $ -. Der Rückgabestatus ist immer wahr, es sei denn, eine ungültige Option ist aufgetreten.
man set
.