bash case 语句中的方括号是什么意思?

Ste*_*eld 3 bash documentation

http://ss64.com/bash/case.html显示

case word in [ [(] pattern [| pattern]...) command-list ;;]... esac
Run Code Online (Sandbox Code Playgroud)

方括号表示什么?其他网站忽略它们(即没有[[(]等)

http://www.thegeekstuff.com/2010/07/bash-case-statement/ 显示:没有使用[[(]等。

case expression in
    pattern1 )
        statements ;;
    pattern2 )
        statements ;;
    ...
esac
Run Code Online (Sandbox Code Playgroud)

感谢下面的详细回复。我非常感谢您的澄清。

gle*_*man 7

阅读权威来源:GNU bash 手册
https://www.gnu.org/software/bash/manual/bashref.html#Conditional-Constructs

方括号表示可选内容。

唯一的强制性部分是:case word in esac-- 这是一个有效的 bash,它恰好什么也不做。


Gil*_*il' 5

方括号是文档中的常见约定,用于指示括号内的内容是可选的。它们是文档使用的元语法的一部分。

\n\n

...表示法也是元语法;表示前面的元素可以重复。

\n\n

其他常见的元语法包括用于分组和|表示 \xe2\x80\x9cor\xe2\x80\x9d 的括号。在这里,括号和竖线都是语法的一部分,而方括号都是元语法的一部分。

\n\n

好的手册以与语法不同的字体排版元语法。您正在阅读的网页和它抄袭的bash 手册在命令描述中都没有这样做casewordbash 手册将,pattern和 等字样排版command-list为斜体;这也是元语法,表明这些单词是对该位置的内容的描述,而不是像case,in和那样按字面输入的单词esac

\n\n

\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0case in[ [ (]模式[| 模式]...) 命令列表 ;;]...esac

\n