運行以下腳本
按Ctrl + C
觀察當前終端行爲。
按下輸入次數並嘗試執行一些命令。從使用讀取和陷阱的bash腳本中清除退出
#!/bin/bash
LOCK_FILE=/tmp/lockfile
clean_up(){
# Perform program exit housekeeping
echo -e "Signal Trapped, exiting..."
# Do some Special operation
rm -f $LOCK_FILE
#
exit 1
}
touch LOCK_FILE
trap clean_up SIGHUP SIGINT SIGTERM
read -s -p "Password: " var
echo -e "\n Input Password is: $var\n"
我想知道我在做什麼錯誤?
我嘗試做一個乾淨的退出。 它正在工作,但出口終端STDIN消失後。
你還沒有說你期望它做什麼或它在你的機器上做了什麼。 – l0b0
@ l0b0實際上,我測試過了,它很奇怪。在捕獲SIGINT時,它會退出程序並弄亂你的shell(當你編寫一個命令時沒有字符出現,當你按下回車鍵時沒有新行)。當您鍵入重置時,這是固定的。儘管 – Aserre
適合我,但我不知道他的劇本爲何如此。 – l0b0