Aus der Bash-Dokumentation :
(list)
list wird in einer Subshell-Umgebung ausgeführt (siehe COMMAND EXECUTION ENVIRONMENT unten). Variablenzuweisungen und integrierte Befehle, die sich auf die Umgebung der Shell auswirken, bleiben nach Abschluss des Befehls nicht wirksam. Der Rückgabestatus ist der Exit-Status der Liste.
Mit anderen Worten, Sie stellen sicher, dass das, was auch immer in 'list' (wie a cd
) passiert, keine Auswirkung außerhalb von (
und hat )
. Die einzige Sache , die undicht wird , ist der Exit - Code des letzten Befehls oder die mit set -e
dem ersten Befehl, der einen Fehler (außer ein paar wie erzeugt if
, while
usw.)
((expression))
Der Ausdruck wird gemäß den nachstehend unter ARITHMETISCHE BEWERTUNG beschriebenen Regeln ausgewertet. Wenn der Wert des Ausdrucks nicht Null ist, ist der Rückgabestatus 0; Andernfalls lautet der Rückgabestatus 1. Dies ist genau gleichbedeutend mit let "expression".
Dies ist eine Bash-Erweiterung, mit der Sie rechnen können. Dies ähnelt in gewisser Weise der Verwendung expr
ohne alle Einschränkungen von expr
(z. B. überall Leerzeichen, Flucht *
usw.).
[[ expression ]]
Gibt einen Status von 0 oder 1 zurück, abhängig von der Auswertung des bedingten Ausdrucks expression. Ausdrücke setzen sich aus den im Folgenden unter BEDINGTE AUSDRÜCKE beschriebenen Primären zusammen. Wortteilung und Pfadnamenerweiterung werden nicht für die Wörter zwischen [[und]] ausgeführt. Tilde-Erweiterung, Parameter- und Variablenerweiterung, arithmetische Erweiterung, Befehlssubstitution, Prozessersetzung und Entfernen von Anführungszeichen werden ausgeführt. Bedingte Operatoren wie -f müssen nicht in Anführungszeichen gesetzt werden, um als primäre Operatoren erkannt zu werden.
Bei Verwendung mit [[sortieren die Operatoren <und> lexikografisch nach dem aktuellen Gebietsschema.
Dies bietet einen erweiterten Test zum Vergleichen von Zeichenfolgen, Zahlen und Dateien, der den test
Angeboten ähnelt, jedoch leistungsfähiger ist.
[ expr ]
Gibt einen Status von 0 (true) oder 1 (false) zurück, abhängig von der Auswertung des bedingten Ausdrucks expr. Jeder Operator und oper und muss ein separates Argument sein. Ausdrücke setzen sich aus den oben unter BEDINGTE AUSDRÜCKE beschriebenen Primären zusammen. test akzeptiert weder Optionen noch akzeptiert und ignoriert es ein Argument von -, um das Ende von Optionen zu kennzeichnen.
[...]
Dieser ruft test
. Eigentlich war in alten Zeiten [
eine symbolische Verbindung zu test
. Es funktioniert genauso und Sie haben die gleichen Einschränkungen. Da eine Binärdatei den Namen kennt, mit dem sie gestartet wurde, kann das Testprogramm Parameter analysieren, bis es einen Parameter findet ]
. Lustige Unix-Tricks.
Beachten Sie, dass im Fall bash
, [
und test
sind integrierte Funktionen (wie in einem Kommentar erwähnt), aber so ziemlich die gleichen Einschränkungen gelten.