Wenn ich versuche, a;;b
in sh zu laufen , erhalte ich diesen Fehler:
sh: <number>: Syntax error: ";;" unexpected
Wenn ich versuche, a;;;b
bekomme ich den gleichen Fehler, nicht ;;;
statt ;;
, also denke ich das;;
das etwas bedeutet, obwohl ich nicht weiß, was es bedeutet.
Hier ist ein Beispiel:
$ echo A;;echo B
sh: 1: Syntax error: ";;" unexpected
$ echo A;;;echo B
sh: 1: Syntax error: ";;" unexpected
$ echo A; ;echo B
sh: 1: Syntax error: ";" unexpected
Hier sieht man, dass wenn ich ; ;
stattdessen ;;
den Fehler benutze, das anders ist, was die Tatsache angeht, dass ich vorher ;
ohne einen Befehl benutzt habe. ;;
scheint ein anderer Operator zu sein, obwohl ich nicht weiß, worauf es zutrifft.
;;
und habe hier keinen Betrüger gefunden.Antworten:
;;
trennt Anweisungen in einemcase
...esac
-Konstrukt in POSIX-Shells:Um etwas über einen Befehl herauszufinden, können Sie ausführen
man that-command
. Wenn es sich bei Ihrem Pager um einen handeltless
, können Sie in der Manpage suchen, indem Sie drücken/ .Hier würdest du laufen
man sh
und suchen;;
. Einige Shells unterstützen andere Operatoren beim Trennen voncase
Anweisungen (z. B.;&
inksh93
/zsh
/bash
/mksh
,&|
inzsh
/mksh
,;;&
inbash
).quelle
less
, dann ist es manchmal praktisch,$ man bash|grep -C1 ';;'
(
vora)
undb)
, und Sie müssen;;
nachcmd4
(
Tat weglassen , aber Sie brauchten das;;
vorher noch nichtesac
(obwohl es nicht schadete).;;
optional war.