Ich lese ein Shell-Skript in Unix. Ich habe auf die unterhalb der Linie kommen:
if [[ ! $1 =~ ^# ]];
ich das Teil zu verstehen, die auf der linken Seite des Gleichheitszeichen ist aber was bedeutet ~^#
Mittel.
Ich lese ein Shell-Skript in Unix. Ich habe auf die unterhalb der Linie kommen:
if [[ ! $1 =~ ^# ]];
ich das Teil zu verstehen, die auf der linken Seite des Gleichheitszeichen ist aber was bedeutet ~^#
Mittel.
Nach http://wiki.bash-hackers.org/syntax/ccmd/conditional_expression der =~
ist:
<STRING> =~ <ERE> <STRING>
gegen den erweiterten regulären Ausdruck geprüft<ERE>
-TRUE
auf ein Spiel
So ist die ^#
ein erweiterter regulärer Ausdruck ist. Seit #
ist kein Sonderzeichen in erweiterten Regex. Die Bedeutung von if prüft, ob die Zeichenfolge in $1
nicht mit #
beginnt. So auf der Kommandozeile
$ if [[ ! '#' =~ ^# ]]; then echo matches; else echo no match; fi
no match
$ if [[ ! 'b' =~ ^# ]]; then echo matches; else echo no match; fi
matches
~
ermöglicht passende POSIX regulären Ausdruck zu verwenden (regex).^
ein Sonderzeichen, die den Anfang einer ZeileIn Ihrem Fall bedeutet ^#
eine Linie mit #
beginnen. Dann kümmert sich Ihr Zustand nur um Zeilen, die nicht mit #
beginnen.
Beim Shell-Scripting sind Zeilen, die mit #
beginnen, Kommentare, die vom shell
nicht als Befehle ausgewertet werden.