Wie kann man die Ausgabe von verstehen echo $-
? Es sieht aus wie eine Art Flaggenzeichen. Ich kann keine Ahnung bekommen, wenn ich google.
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 set
.man bash
oderhelp set
wie bereits erwähnt alsman set
.c
Flagge bedeutet? Ich sehe es eingestellt, wenn sich rsync anmeldet und meine .bashrc ausführt. Das Bash-Handbuch fürset
wird nicht erwähntc
. Ich führe bash 4.2.46 (2) -release aus.-c
Befehlszeilenoption wider ; siehebash -c 'echo $-'
.Aus dem Bash-Referenzhandbuch :
quelle