Я просто использовал его в сценарии с командами SSH, чтобы избежать ошибок в сценарии.
В этом случае я хочу посмотреть, сможет ли пользователь подключиться к набору серверов. Если соединение в порядке, удаленный хост будет отображать эхо OK. Если соединение не удается, SSH ответит с ошибкой. Тем не менее, я хочу, чтобы мой сценарий завершился с 0, а не со значением команды SSH, если это не удалось. Поэтому, по сути, я перехватываю ошибку SSH, обращаясь к ней ||
с помощью команды null :
. Выглядит так:
#!/bin/bash
for i in $(cat servers.txt); do
echo -n "$i ";
ssh user@${i} 'echo OK' || :;
done
Таким образом я получаю вывод из SSH, но не код ошибки:
....
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).
....