Une première solution
Pour restaurer une situation, vous devez connaître la précédente.
Les commandes bind
et shopt
sont si confortables que parmi les rares options qu’elles présentent, il en existe une ( -p
pour la première et -v
pour la seconde) qui donne la sortie dans un format utilisable, presque directement, pour les restaurer :
shopt -p | grep nocaseglob # shopt -u nocaseglob
bind -v | grep completion-ignore-case # set completion-ignore-case off
La sortie est indiquée ci-dessus après le #
signe.
Une fois que vous connaissez la valeur de départ, vous pouvez créer un couple d'alias pour aller dans Ignore More ( IgnoreGo
) et en sortir ( IgnoreExit
):
alias IgnoreGo="shopt -s nocaseglob; bind 'set completion-ignore-case on'"
alias IgnoreExit="shopt -u nocaseglob; bind 'set completion-ignore-case off'"
Vous pouvez mettre cet alias avec l'autre de votre shell de configuration (généralement dans ~/.bash_aliases
ou ~/.bashrc
) et l'utiliser quand vous le souhaitez. Le problème est que ceux qui sont aveugles, ils ne verront pas la situation réelle de votre coquille.
Une meilleure solution
Juste pour rendre tout cela indépendant de votre connaissance de ces valeurs de variables et un peu plus complexe, vous pouvez créer un function ( Store
) pour créer un alias ( ReStore
) pour revenir en arrière, quelle que soit la situation initiale.
Store(){ alias ReStore="$(shopt -p|grep nocaseglob); \
bind '$(bind -v|grep completion-ignore-case)'"; }
Même cela peut être écrit dans le fichier de configuration de votre shell (voir ci-dessus). Chaque fois que Store
vous gèlez la situation réelle et ReStore
rétablissez la dernière gelée .
Notez qu'il \
doit s'agir du dernier caractère de la ligne pour fractionner la commande dans un format plus lisible sur deux lignes.
Note
Sur mon système pour exécuter une commande (par exemple, pour naviguer avec cd
), il suffit de donner bind 'set completion-ignore-case on'
à activer le cas ignorer, même quand nocaseglob
est off
. L' nocaseglob
on est nécessaire pour l'extension du chemin d'accès. Il existe même le nocasematch
pour les motifs. help bash
lire plus ...
Aide sur les commandes
Les commandes bind
et shopt
sont intégrées au shell. Cela signifie que vous devez utiliser le manuel help
plutôt que d' utiliser le manuel man
.
Pour n’avoir qu’une sortie lisible par l’homme, vous pouvez utiliser
shopt | grep nocaseglob # nocaseglob on
bind -V | grep completion-ignore-case # completion-ignore-case is set to `off'