.bashrc 是否包含语法错误?

Arg*_*ent 8 linux bash bashrc ubuntu

在 Ubuntu 18.04 LT .bashrc 文件中有以下内容:

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac
Run Code Online (Sandbox Code Playgroud)

xterm-color) 不是不平衡括号的实例吗?为什么该行以两个分号结尾?

需要说明的是,这不是我写的。它在原始文件中,不是我编辑的。

如果有语法错误,我应该向谁报告?

bae*_*elx 38

这是 bashcase语句(抽象地称为一般编程中的switch 语句)的标准正确语法,尽管与 C、Java 或其他语言相比可能是一种奇怪的语法。

来自Linux 文档项目

嵌套的 if 语句可能不错,但是一旦您面临要采取的几种不同的可能操作,它们往往会混淆。对于更复杂的条件,请使用 case 语法:

case EXPRESSION in CASE1) COMMAND-LIST;; CASE2) COMMAND-LIST;; ... CASEN) COMMAND-LIST;; esac
Run Code Online (Sandbox Code Playgroud)

  • 实际上可以在任何模式前面有一个可选的左括号,即`case $var in (foo) echo something;; 埃萨克`。Bash 的命令行帮助没有提到这一点,但 [在线参考手册有它](https://www.gnu.org/software/bash/manual/html_node/Conditional-Constructs.html)(连同一个例子` case` 语句,也是...) (4认同)
  • 不仅仅是在`bash`中;[POSIX shell 规范](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_04_05) 也允许可选的开头`(`。 (3认同)