當shell腳本在執行過程中被中斷時,我想發出一個類似「rm -rf /etc/XXX.pid
」的命令。像使用CTRL+C
任何人都可以幫我在這裏做什麼?如何在shell腳本中斷時觸發命令?
5
A
回答
7
雖然它可能會作爲一個衝擊很多,你可以使用bash
內置trap
捕獲信號:-)
嗯,至少是那些可以被捕獲,但CTRL-C是通常綁定到INT
信號。您可以捕獲信號並執行任意代碼。
以下腳本會要求您輸入一些文字,然後將其回顯給您。如果或許,你產生INT
信號,它只是在抱怨你並退出:
#!/bin/bash
exitfn() {
trap SIGINT # Restore signal handling for SIGINT
echo; echo 'Aarghh!!' # Growl at user,
exit # then exit script.
}
trap "exitfn" INT # Set up SIGINT trap to call function.
read -p "What? " # Ask user for input.
echo "You said: $REPLY"
trap SIGINT # Restore signal handling to previous before exit.
測試運行成績單如下(完全進入線,與任何條目之前按CTRL-C線,並用線在按下CTRL-C之前進行部分輸入):
pax> ./testprog.sh
What? hello there
You said: hello there
pax> ./testprog.sh
What? ^C
Aarghh!!
pax> ./qq.sh
What? incomplete line being entere... ^C
Aarghh!!
3
trap
用於捕獲腳本中的信號,包括按下Ctrl-C時生成的SIGINT
。
相關問題
- 1. shell腳本/命令
- 2. su命令在shell腳本
- 3. Shell腳本:在shell腳本中運行「exit」命令後執行命令
- 4. 如何在shell腳本中同時運行兩個命令?
- 5. 從MySQL執行Shell腳本/命令觸發器/存儲過程
- 6. 如何將命令寫入shell腳本?
- 7. 如何使用shell腳本命令在終端中啓動一個shell腳本?
- 8. Shell命令在shell中工作,但不在shell腳本中
- 9. date命令在bash shell腳本中
- 10. 在shell腳本中提供mysql命令
- 11. 在shell腳本中運行命令
- 12. 在shell腳本中執行MySQL命令?
- 13. 在shell腳本中執行mailx命令
- 14. 在shell腳本中返回命令
- 15. 在shell腳本中執行linux命令
- 16. 在shell腳本中輸出find命令
- 17. 腳本Karaf shell命令?
- 18. Shell腳本測試命令
- 19. shell腳本剪切命令
- 20. shell腳本命令疑問
- 21. Shell腳本進程命令
- 22. shell腳本grep命令
- 23. Linux shell腳本命令 - gzip
- 24. 在shell腳本中觸發UNIX序列
- 25. 如何在shell腳本中提取命令名本身
- 26. 從shell腳本觸發oozie
- 27. 在shell腳本中,HTML如何在awk命令中工作?
- 28. 如何讓shell命令在shell腳本之外生效?
- 29. 在shell腳本中執行的跟蹤shell命令(例如zsh)
- 30. 如何將stdin從shell腳本重定向到shell腳本中的命令?
+1這樣好多了,我打算建議一個邏輯運算符來鏈接腳本。 – slezica