Lembre-se de ativar -n no shell filho

1

Desativei echo built-in para que echo seja pesquisado em $PATH . Eu usei o comando enable -n para isso. Por favor, veja abaixo.

$ type echo
echo is a shell builtin
$ enable -n echo
$ type echo
echo is /bin/echo

Mas quando eu abro um shell filho do shell atual, novamente o echo embutido é usado. Por favor, veja abaixo.

$ type echo
echo is /bin/echo
$ bash
$ # Now I am in child shell
$ type echo
echo is a shell builtin

Existe alguma maneira de preservar essa configuração no shell filho também, para que no shell filho também echo seja procurado em $PATH (ou seja, enable -n echo permaneceria em vigor)?

    
por sps 25.10.2015 / 00:20

2 respostas

1

Sim, existem duas maneiras. Um para shells interativos e um para non-interactive bash.

Para shells interativos do bash, coloque o comando enable -n echo no seu arquivo $HOME/.bashrc . Então todos os shells interativos usarão o eco externo.

Eu faço não recomendo isso para shells não interativos, mas para isso, você deve definir a variável de ambiente BASH_ENV para qualquer arquivo que contenha a linha enable -n echo . Em seguida, todas as shells bash não interativas executarão o arquivo nomeado pelo arquivo BASH_ENV, fazendo com que usem o eco externo.

    
por 25.10.2015 / 01:01
0

Isso ("enable -n") parece ser um recurso específico do bash . Você poderia colocar o

enable -n echo

no script de inicialização do shell correspondente, por exemplo, ~/.bashrc , para que afetasse cada shell que você invocar.

    
por 25.10.2015 / 00:50