Acabei de usá-lo em um script com comandos SSH para evitar erros no script.
Nesse caso, quero ver se um usuário pode se conectar a um conjunto de servidores. Se a conexão estiver OK, o host remoto ecoará OK. Se a conexão falhar, o SSH responderá com o erro. No entanto, quero que meu script saia com 0 e não com o valor do comando SSH, se ele falhar. Então, basicamente eu intercepto o erro SSH ORing ||
com o comando nulo :
. Se parece com isso:
#!/bin/bash
for i in $(cat servers.txt); do
echo -n "$i ";
ssh user@${i} 'echo OK' || :;
done
Dessa forma, recebo a saída do SSH, mas não o código de erro:
....
swl06 ok
swl07 ok
swl08 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
swl09 ok
swl10 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
....