Onde está o “shopt extglob” do bash ativado para o meu shell interativo?

6

Vejo que o extglob está ativado, mas gostaria de saber onde isso está definido.

$ shopt extglob
extglob         on
$

Não o encontrou nestes arquivos.

  • ~/.bashrc
  • ~/.bash_profile
  • ~/.profile
  • /etc/bashrc (nenhum arquivo)
  • /etc/bash.bashrc
por JohnMudd 09.06.2015 / 23:14

2 respostas

7

Na minha VM 14.04, encontrei em /usr/share/bash-completion/bash_completion :

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

Isso é originado por ~/.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

Isso pode ser descoberto executando bash -x , que mostra todos os arquivos de inicialização e seus comandos. Execute script -c "bash -x" , depois exit no novo shell interativo e examine a saída do arquivo typescript do script:

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

...

++ shopt -s extglob progcomp

Os + indicam o nível do arquivo originado, portanto, quando olhamos um nível acima do comando shopt , vemos /usr/share/bash-completion/bash_completion é originado.

    
por Digital Trauma 09.06.2015 / 23:26
3

Está definido em /usr/share/bash-completion/bash_completion file:

shopt -s extglob progcomp

O arquivo ~/.bashrc tem o seguinte, se a opção posix não estiver definida, então:

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

Isso significa que, se o arquivo /usr/share/bash-completion/bash_completion existir, ele irá originar o arquivo.

Como esse arquivo contém a linha para definir extglob , ele será definido na declaração de um shell interativo de não-login.

    
por heemayl 09.06.2015 / 23:29

Tags