что означает следующая опция оболочки - shopt -s nullglob extglob

Я управляю своими dotfiles в Ubuntu с помощью Nix. Я запускаю этот скрипт , который является просто оболочкой вокруг этого установщика .

Программа установки превращает dotfiles в пакет Nix и использует GNU stow , чтобы связать их обратно с вашим домашним каталогом.

Вероятно, для большинства людей это немного сложно, но я использую его для управления точечными файлами между NixOS, Ubuntu и OSX.

-5
06.03.2019, 00:34
1 ответ

Вы отключили параметр оболочки с помощью shopt -uв bash.

shopt -u nullglob extglob

отключит обе опции. Это объясняется в руководстве bashи help shoptв интерактивной оболочке bash.

Конкретные параметры, упомянутые здесь, подробно описаны в руководстве bash, но вкратце они

  • nullglob:Шаблоны подстановки имен файлов, которые не соответствуют никаким именам файлов, просто расширяются до нуля, а не остаются нерасширенными.

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

    (нет вывода из последнего echo, кроме пустой строки)

  • extglob:Включает расширенные шаблоны подстановки, такие как, например, !(this|that)(, которые будут соответствовать как *, но не любому имени, которое является thisилиthat).

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

    Различные типы шаблонов расширенной подстановки описаны в руководстве bash.

5
28.01.2020, 05:20

Теги

Похожие вопросы