Captura de entrada do usuário com alias

3

Então, mostrei recentemente ao meu amigo o comando wall . Agora ele continua usando para falar e eu me arrependo de mostrar a ele. Eu quero fazer um apelido chamar wall para impedi-lo de usá-lo e também brincar com ele. Eu fiz alias wall="ls" por enquanto. Ele funciona se o usuário digitar apenas wall , mas se eu digitar wall Hello world , ele funcionará como um comando normal wall . Existe uma maneira de obter o alias para capturar a entrada do usuário e ignorar isso? então, quando ele digitar wall hello world , ele ainda funcionará como ls ?

    
por DarthMars97 21.03.2016 / 22:09

2 respostas

1

As funções podem ter precedência sobre aliases e comandos. Você pode definir a função em seu .bashrc, que receberá argumentos, mas apenas os ignorará.

Como assim

  wall(){ echo " just another brick in the wall "  }
    
por Sergiy Kolodyazhnyy 21.03.2016 / 23:44
0

OK, faça o seguinte:

sudo echo "PATH=~/.bin:$PATH" >> /home/[username]/.bashrc
sudo mkdir /home/[username]/.bin/
sudo echo "fortune | cowsay   # Or whatever command you want to run" > /home/[username]/.bin/wall
sudo chmod 755 /home/[username]/.bin/wall

Dessa forma, sempre que [username] executar o comando wall , ele obterá a saída de fortune | cowsay . Não é um apelido, mas é bom o suficiente.

    
por Daniel 21.03.2016 / 22:33