Posso editar um comando bash shell?

1

Eu só quero modificar um comando bash shell como exit, então quando eu escrevo exit no terminal, ele limpa a tela, ecoa algum texto, aguarda 2 segundos e executa a função de saída.
Então, existe alguma maneira de modificar um comando shell no Ubuntu, se houver como?

    
por Black Block 02.04.2015 / 01:14

3 respostas

4

Você pode usar um alias de shell

alias exit='clear; sleep 2; exit'

Para torná-lo permanente, adicione o alias à parte inferior do arquivo ~ / .bashrc. veja este tópico para ajuda

    
por steeldriver 02.04.2015 / 01:20
1

Encontrei uma solução alternativa em vez de editar o comando bash de saída,% trap 'clear; ~/ascii3.sh; spd-say "Exit"; sleep 2' EXIT usando uma armadilha para a saída no terminal e eu colocá-lo no final do arquivo .pashrc e funciona.
E o ascii3.sh:

echo -e "3[01;31m"
echo " _  _   __   _  _  ____     __     __ _  __  ___  ____    ____   __   _  _  _   "
echo "/ )( \ / _\ / )( \(  __)   / _\   (  ( \(  )/ __)(  __)  (    \ / _\ ( \/ )/ \  "
echo ") __ (/    \\ \/ / ) _)   /    \  /    / )(( (__  ) _)    ) D (/    \ )  / \_/  "
echo "\_)(_/\_/\_/ \__/ (____)  \_/\_/  \_)__)(__)\___)(____)  (____/\_/\_/(__/  (_)  "

Acho que a pergunta que fiz foi muito ruim, pois não refletia meus pensamentos, mas eu não vou mudar nem a resposta. Eu só coloco essa resposta aqui para quem quiser.

    
por Black Block 06.04.2015 / 00:42
0

Você não pode modificar facilmente um comando, mas pode substituir um comando.

# You only need this one time:
mkdir --mode=755 $HOME/bin  

# You need this command once per login (or in $HOME/.bashrc)
PATH="$HOME/bin:$PATH"  

Em seguida, qualquer arquivo / script executável em $HOME/bin substituirá qualquer comando com o mesmo nome.

Quando você digita um comando, o shell procura um arquivo executável com esse nome em cada um dos diretórios em $PATH .

Infelizmente, o seu exemplo exit é um "Shell interno" (consulte man bash ) e não é procurado em $PATH , mas é manipulado internamente pelo shell. Para substituir exit , você terá que definir uma função de shell ou alias (veja man bash ) no seu $HOME/.bashrc

    
por waltinator 02.04.2015 / 01:27