ฉันเพิ่งใช้มันในสคริปต์ด้วยคำสั่ง SSH เพื่อป้องกันไม่ให้สคริปต์เกิดข้อผิดพลาด
ในกรณีนี้ฉันต้องการดูว่าผู้ใช้สามารถเชื่อมต่อกับชุดเซิร์ฟเวอร์ได้หรือไม่ หากการเชื่อมต่อเป็นปกติรีโมตโฮสต์จะดังขึ้นตกลง หากการเชื่อมต่อล้มเหลว SSH จะตอบกลับพร้อมข้อผิดพลาด อย่างไรก็ตามฉันต้องการให้สคริปต์ของฉันออกด้วย 0 และไม่ใช่ค่าของคำสั่ง SSH หากมันล้มเหลว เพื่อเป็นหลักผมกับดักข้อผิดพลาด SSH โดย ORing มันมีคำสั่งเป็นโมฆะ||
:
ดูเหมือนว่านี้:
#!/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).
....