Como faço para definir o que deve acontecer no terminal em um determinado comando?

0

Se eu executar

cal 2013

no terminal, ele ecoa o calendário para o ano de 2013. Por questão de diversão, eu gostaria que o terminal ecoasse

Este ano não vem.

Como devo fazer isso? Eu tentei adicioná-lo como um alias para .bashrc, mas não posso criar aliases com espaços.
Alguma ideia?

EDITAR:

A solução final:

echo "cal() { if [[ \$@ > \"2012\" ]]; then command echo \"This year won't come.\"; else command cal \"\$@\"; fi; }" >> ~/.profile && source ~/.profile
Richard Rodriguez
fonte
Coloque a definição da função entre aspas simples ( echo 'cal() {...}' ) e você pode se livrar de todos os backquotes.
glenn jackman

Respostas:

3

Cole a função em seu .profile ou .bash_profile

Note que é uma função, não um script de shell. Você também pode simplesmente colar isso no prompt do shell. Colocá-lo em um perfil permite que futuras sessões de login obtenham essa função definida.

Seth Robertson
fonte
Um problema, porém, quando eu reinicio o terminal, ele não funciona mais, eu preciso fazer "fonte .profile" novamente. Alguma idéia de como torná-lo permanente?
Richard Rodriguez
RiMMER: Hmm. Seu terminal não deve estar dando a você um shell de login, o que é um pouco estranho. Você pode colocá-lo em .bashrc então, que será usado para todos os shells interativos.
Seth Robertson