Wie Doppel- oder Einzel Klammer, Klammern verwenden, geschweifte Klammern - Stapelüberlauf

Eine einzige Klammer ([) in der Regel tatsächlich ruft ein Programm mit dem Namen [; Mann Test oder Mann [für weitere Informationen. Beispiel:

Die doppelte Klammer ([[) macht das Gleiche (grundsätzlich) als eine einzige Konsole, sondern ist ein bash builtin.







Runde Klammern (()) verwendet, um ein Sub-Shell zu erstellen. Beispielsweise:

Wie Sie sehen können, erlaubt die Subshell Sie Operationen durchzuführen, ohne die Umgebung der aktuellen Shell zu beeinflussen.

4a. Hosenträger ( <> ) Werden verwendet, um eindeutig Variablen zu identifizieren. Beispiel:

4b. Klammern werden auch eine Folge von Befehlen in dem aktuellen Shell Kontext auszuführen, z.B.

Es ist ein subtiler syntaktischer Unterschied mit (). wenn (siehe bash reference); Im Wesentlichen ein Semikolon; nach dem letzten Befehl in Klammern ist ein Muss, und die Klammern müssen durch Leerzeichen umgeben sein.







Um es kurz zu machen: Test implementiert die alte, tragbare Syntax des Befehls. In fast allen Schalen (der älteste ist Bourne-Shells die Ausnahme), [ist ein Synonym für Test (erfordert aber ein endgültiges Argument]). Obwohl alle modernen Schalen Implementierungen von [in-gebaut haben, gibt es in der Regel noch eine externe ausführbare Datei dieses Namens, z.B. / Bin / [.

[[Ist eine neue, verbesserte Version davon, die ein Schlüsselwort ist, kein Programm. Dies hat positive Auswirkungen auf die Benutzerfreundlichkeit, wie unten gezeigt. [[Durch Kornshell und heftigen Schlag (beispielsweise 2,03), aber nicht von der älteren POSIX oder Bourne Shell verstanden.

Und das Fazit:

Wann sollte die neue Test Befehl [[verwendet werden, und wenn die alte [? Wenn Portabilität der Bourne Shell ein Anliegen ist, sollte die alte Syntax verwendet werden. Wenn auf der anderen Seite das Skript BASH oder Kornshell erfordert, ist die neue Syntax vieler flexibler.

Klammern in Funktionsdefinition

Klammern () werden in Funktionsdefinition verwendet:

Das ist der Grund, warum Sie fliehen müssen Klammern auch in Befehlsparameter:

beantwortet 9. September '13 bei 08.56

Deine Antwort