ไม่ได้ระบุไว้ในคำถามหากคุณต้องการให้สิ่งนี้ดำเนินการบนเครื่องโลคัลหรือรีโมต มันไม่ได้ระบุว่าเชลล์ตัวใดมีอยู่ในเครื่องทั้งสองดังนั้นฉันเลยสมมุติว่าbashทั้งสอง
หากคุณต้องการดำเนินการบนเครื่องระยะไกลให้ดูที่~/.bash_logoutจะดำเนินการเมื่อเปลือกเข้าสู่ระบบออกจากระบบอย่างสง่างาม จากman bash:
เมื่อล็อกอินเชลล์ออก bash จะอ่านและดำเนินการคำสั่งจากไฟล์~/.bash_logoutหากมีอยู่
คุณสามารถทำการทดสอบ~/.bash_logoutเพื่อตรวจสอบว่าเชลล์ที่ถูกล็อกเอาต์เป็นเซสชั่น SSH หรือไม่สิ่งต่อไปนี้ควรใช้งานได้:
if [[ $SSH_CLIENT || $SSH_CONNECTION || $SSH_TTY ]]; then
# commands go here
fi
sshหากคุณต้องการที่จะดำเนินการได้ในเครื่องท้องถิ่นสร้างฟังก์ชั่นห่อหุ้มรอบ สิ่งต่อไปนี้ควรใช้งานได้:
ssh() {
if command ssh "$@"; then
# commands go here
fi
}
นั่นอาจจะง่ายเกินไปสำหรับความต้องการของคุณ แต่คุณได้รับความคิด