如果我尝试a;;b
在 sh 中运行,则会收到此错误:
sh: <number>: Syntax error: ";;" unexpected
Run Code Online (Sandbox Code Playgroud)
如果我尝试a;;;b
我会得到同样的错误,而;;;
不是;;
,所以我认为这;;
意味着什么,尽管我不知道它是什么意思。
下面是一个例子:
$ 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
Run Code Online (Sandbox Code Playgroud)
在这里您可以看到,当我使用; ;
而不是;;
错误时,错误是不同的,这与我;
之前在没有命令的情况下使用的事实有关。;;
似乎是一个不同的运营商,虽然我不知道它适用于什么。
Sté*_*las 47
;;
在 POSIX shell中的case
...esac
构造中分隔语句:
case foo in (a) cmd1; cmd2 ;; (b) cmd3; cmd4; esac
Run Code Online (Sandbox Code Playgroud)
要了解命令,您可以运行man that-command
. 如果您的寻呼机是less
,则可以通过按在手册页中进行搜索/。
在这里,您将运行man sh
并搜索;;
. 某些 shell 支持其他运算符来分隔case
语句(如;&
in ksh93
/ zsh
/ bash
/ mksh
、&|
in zsh
/ mksh
、;;&
in bash
)。