以下 shell 选项的含义是什么 - shopt -s nullglob extglob

以下 shell 选项的含义是什么 - shopt -s nullglob extglob

我们有

 bash -version
GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu)

以下 shell 选项的含义是什么(在 bash 脚本中)

shopt -s nullglob extglob

取消它的相反方法是什么?

答案1

shopt -u您可以使用in取消设置 shell 选项bash

shopt -u nullglob extglob

将取消设置这两个选项。这在bash手册和help shopt交互式 shell 中都有解释bash

这里提到的具体选项在bash手册中有详细记录,但简而言之,它们是

  • nullglob:与任何文件名都不匹配的文件名通配模式将简单地扩展为空,而不是保持未扩展状态。

    $ echo my*file
    my*file
    $ shopt -s nullglob
    $ echo my*file
    

    (最后echo一个除了空行之外没有输出)

  • extglob:启用扩展的通配模式,例如!(this|that)(将匹配 like*但不匹配任何名称为this或 的名称that)。

    $ shopt -s extglob
    $ touch this that theother
    $ echo !(this|that)
    theother
    

    手册中描述了各种类型的扩展通配模式bash

相关内容