Первое решение
Чтобы восстановить ситуацию, вы должны знать предыдущую.
Команды bind и shopt настолько уютно , что среди нескольких вариантов , которые они представляют, есть один -p для первого и -v для второго) , которые дают выход в формате годного к употреблению, почти сразу, чтобы восстановить их:
shopt -p | grep nocaseglob # shopt -u nocaseglob
bind -v | grep completion-ignore-case # set completion-ignore-case off
Результат сообщается выше после знака # .
Как только вы знаете начальное значение, вы можете создать пару псевдонимов, чтобы перейти в Ignore More (IgnoreGo) и выйти (IgnoreExit) из него:
alias IgnoreGo="shopt -s nocaseglob; bind 'set completion-ignore-case on'"
alias IgnoreExit="shopt -u nocaseglob; bind 'set completion-ignore-case off'"
Вы можете поместить этот псевдоним в другую конфигурационную оболочку (обычно в ~/.bash_aliases или ~/.bashrc) и использовать, когда захотите. Проблема в том, что они слепы, они не увидят фактического положения вашей оболочки.
Лучшее решение
Просто чтобы сделать все это независимым от вашего знания этих значений переменных и немного более сложным, вы можете создать функцию (Store) для создания псевдонима (ReStore) для возврата, какой бы ни была начальная ситуация.
Store(){ alias ReStore="$(shopt -p|grep nocaseglob); \
bind '$(bind -v|grep completion-ignore-case)'"; }
Даже это можно записать в файле конфигурации вашей оболочки (см. Выше). Каждый раз с помощью Store вы замораживаете реальную ситуацию, а с помощью ReStore вы переустанавливаете последнюю заблокированную.
Обратите внимание, что \ должен быть последним символом строки, чтобы разделить команду в более удобочитаемом формате на две строки.
Заметка
В моей системе для выполнения команды (например, для навигации по cd) достаточно дать bind 'set completion-ignore-case on' чтобы включить регистр игнорирования, даже когда nocaseglob off .
nocaseglob on необходим для расширения пути. Существует даже nocasematch для шаблонов. help bash чтобы прочитать больше ...
Помощь по командам
Команды bind и shopt встроены в оболочку. Это означает, что для того, чтобы попросить руководство по их использованию, вам нужно обратиться за help вместо man .
Чтобы иметь только удобочитаемый вывод, вы можете использовать
shopt | grep nocaseglob # nocaseglob on
bind -V | grep completion-ignore-case # completion-ignore-case is set to `off'