Jeśli spróbuję uruchomić a;;b
w sh, pojawia się ten błąd:
sh: <number>: Syntax error: ";;" unexpected
Jeśli spróbuję a;;;b
, otrzymam ten sam błąd, nie ;;;
zamiast ;;
, więc myślę, że ;;
to coś znaczy, chociaż nie wiem, co to znaczy.
Oto przykład:
$ 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
Tutaj możesz zobaczyć, że kiedy używam ; ;
zamiast ;;
błędu, jest inny, odnoszący się do faktu, że użyłem wcześniej ;
bez polecenia. ;;
wydaje się być innym operatorem, chociaż nie wiem, czego dotyczy.
;;
i nie znalazłem tutaj duplikatu.Odpowiedzi:
;;
rozdziela instrukcje wcase
...esac
konstrukcji w powłokach POSIX:Aby dowiedzieć się o poleceniu, możesz uruchomić
man that-command
. Jeśli masz pagerless
, możesz przeszukiwać stronę podręcznika, naciskając /.Tutaj biegałeś
man sh
i szukałeś;;
. Niektóre powłoki obsługują inne operatory do oddzielaniacase
instrukcji (np.;&
Inksh93
/zsh
/bash
/mksh
,&|
inzsh
/mksh
,;;&
inbash
).źródło
less
, czasem przydaje się$ man bash|grep -C1 ';;'
(
przeda)
ib)
, a potrzebujesz;;
późniejcmd4
(
rzeczywiście, ale nadal nie potrzebne;;
przedesac
(choć nie zaszkodzi).;;
była opcjonalna.