gpt4 book ai didi

svn - Bash 大小写语法 - "-@"的含义

转载 作者:行者123 更新时间:2023-11-29 09:05:14 26 4
gpt4 key购买 nike

我不熟悉下面 bash 脚本片段中“-@”的语义,它来自/etc/bash_completion.d/subversion。我试图理解为什么 bash 在这一行报告“意外标记附近的语法错误”(',我有两个问题:

  1. “-@()”在这里应该做什么?
  2. 为什么 bash 可能对这个声明不满意?

    case $prev in
    # other cases omitted
    -@(F|-file|-targets))
    _filedir
    return 0;
    ;;
    # other cases omitted
    esac

最佳答案

这里的 '@(...)' 是 Bash 的 pattern matching 的一部分句法。它是一个“或”,它只是匹配列出的模式之一,由竖线字符分隔。

最初的破折号只是从表达式中提取出来; “-@(a|b|c)”与“@(-a|-b|-c)”相同,但更短。

正如一位评论者所指出的(谢谢!)这需要启用 Bash 的 extglob 才能工作。这是这样做的:

shopt -s extglob

您可以像这样检查您是否已经启用它:

shopt extglob

关于svn - Bash 大小写语法 - "-@"的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1125189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com