¿Dónde está activado "shopt extglob" de bash para mi shell interactivo?

¿Dónde está activado "shopt extglob" de bash para mi shell interactivo?

Veo que extglob está activado pero me gustaría saber dónde está configurado.

$ shopt extglob
extglob         on
$

No lo encontré en estos archivos.

  • ~/.bashrc
  • ~/.bash_profile
  • ~/.profile
  • /etc/bashrc(No existe el archivo)
  • /etc/bash.bashrc

Respuesta1

En mi VM 14.04, lo encontré en /usr/share/bash-completion/bash_completion:

ubuntu@ubuntu:~$ grep extglob /usr/share/bash-completion/bash_completion 
shopt -s extglob progcomp
ubuntu@ubuntu:~$ 

Esto proviene de ~/.bashrc:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

Esto se puede resolver ejecutando bash -x, que muestra todos los archivos de inicio obtenidos y sus comandos. Ejecute script -c "bash -x", luego exiten el nuevo shell interactivo, luego examine el typescriptresultado del archivo del script:

+ . /usr/share/bash-completion/bash_completion

...

++ shopt -s extglob progcomp

Los +'s indican el nivel del archivo de origen, por lo que cuando miramos un nivel por encima del shoptcomando, vemos /usr/share/bash-completion/bash_completionque es de origen.

Respuesta2

Está configurado en /usr/share/bash-completion/bash_completionel archivo:

shopt -s extglob progcomp

El ~/.bashrcarchivo tiene lo siguiente, si posixla opción no está configurada, entonces:

if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion

Eso significa que si el archivo /usr/share/bash-completion/bash_completionexiste, lo obtendrá.

Como ese archivo contiene la línea para configurar extglob, se configurará al indicar un shell interactivo sin inicio de sesión.

información relacionada