ฉันจะรันคำสั่งบนโลคัลเทอร์มินัลโดยอัตโนมัติหลังจากออกจากการssh
เชื่อมต่อได้อย่างไร มีตะขอหรือเหตุการณ์ที่สามารถจัดการกับสิ่งนี้ได้หรือไม่?
ฉันจะรันคำสั่งบนโลคัลเทอร์มินัลโดยอัตโนมัติหลังจากออกจากการssh
เชื่อมต่อได้อย่างไร มีตะขอหรือเหตุการณ์ที่สามารถจัดการกับสิ่งนี้ได้หรือไม่?
คำตอบ:
ยกระดับalias
ฟังก์ชั่นหรือดีกว่า
ตัวอย่างเช่น:
ssh () { command ssh "$@"; echo foobar; }
ตอนนี้คุณสามารถเรียกใช้:
ssh mysite
หลังจากที่คุณออกจากssh
เซสชันecho foobar
จะถูกเรียกใช้
เปลี่ยนecho foobar
ด้วยคำสั่งจริงที่คุณต้องการเรียกใช้และแน่นอนคุณสามารถใช้หลายคำสั่งได้หากคุณต้องการ
~/.bashrc
ที่จะทำให้นิยามฟังก์ชันถาวรใส่ไว้ในของคุณ
นอกจากนี้ทราบว่ามันอาจจะไม่เป็นที่ต้องการเสมอที่จะมีฟังก์ชั่นที่มีชื่อเป็นเมื่อคุณต้องการอย่างชัดเจนใช้ภายนอกssh
ssh
ในกรณีนั้นคุณสามารถใช้วิธีใดวิธีหนึ่งต่อไปนี้เพื่อข้ามssh
ฟังก์ชันเพื่อรับssh
ไบนารีภายนอก:
command ssh mysite
หรือเปลี่ยนชื่อฟังก์ชั่นเป็นอย่างอื่นเช่นsshfunc
:
sshfunc () { ssh "$@"; echo foobar; }
ssh user@host 'cd /somewhere/ && tar cf - | gzip -c -' > local_backup_of_somewhere.tgz
นี้จะผิดเพราะมันจะมี "foobar" ในตอนท้าย ... )