Я просто використовував його в сценарії з командами SSH, щоб скрипт не помилявся.
У цьому випадку я хочу перевірити, чи може користувач підключитися до набору серверів. Якщо з'єднання в порядку, віддалений хост відлунне ОК. Якщо з'єднання не вдалося, 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).
....