Tôi chỉ sử dụng nó trong một tập lệnh với các lệnh SSH để giữ cho tập lệnh không bị lỗi.
Trong trường hợp này, tôi muốn xem liệu người dùng có thể kết nối với một bộ máy chủ hay không. Nếu kết nối ổn, máy chủ từ xa sẽ lặp lại OK. Nếu kết nối không thành công, SSH sẽ phản hồi với lỗi. Tuy nhiên, tôi muốn tập lệnh của mình thoát bằng 0 và không phải giá trị của lệnh SSH nếu thất bại. Vì vậy, về cơ bản, tôi bẫy lỗi SSH bằng cách OR nó ||
với lệnh null :
. Trông như thế này:
#!/bin/bash
for i in $(cat servers.txt); do
echo -n "$i ";
ssh user@${i} 'echo OK' || :;
done
Bằng cách đó, tôi nhận được đầu ra từ SSH nhưng không phải mã lỗi:
....
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).
....