bash – 如何在shell脚本中断时触发命令?
发布时间:2020-12-15 22:41:35 所属栏目:安全 来源:网络整理
导读:当 shell脚本在执行过程中被中断时,我想发出像“rm -rf /etc/XXX.pid”这样的命令.喜欢使用CTRL C. 任何人都可以帮我在这做什么? 解决方法 虽然它可能会让许多人感到震惊,但您可以使用bash内置陷阱来捕获信号:-) 好吧,至少那些可以被捕获,但CTRL-C通常与INT
当
shell脚本在执行过程中被中断时,我想发出像“rm -rf /etc/XXX.pid”这样的命令.喜欢使用CTRL C.
任何人都可以帮我在这做什么? 解决方法
虽然它可能会让许多人感到震惊,但您可以使用bash内置陷阱来捕获信号:-)
好吧,至少那些可以被捕获,但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!! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |