面试题答案
一键面试1. trap命令基本语法
trap [commands] [signals]
commands
:是当指定信号发生时要执行的命令或脚本。可以是单个命令,也可以是用分号(;
)或换行符分隔的多个命令。signals
:是要捕获的信号列表。常见信号有SIGINT
(中断信号,通常由Ctrl+C
触发)、SIGTERM
(终止信号)、EXIT
(脚本正常或异常退出时触发)等。
2. 捕获SIGINT信号并执行自定义清理脚本示例
假设我们有一个名为cleanup.sh
的清理脚本,内容如下:
#!/bin/bash
echo "执行清理操作"
# 这里可以添加实际的清理命令,比如删除临时文件等
并确保该脚本有可执行权限:chmod +x cleanup.sh
然后在主脚本中使用 trap
捕获 SIGINT
信号并执行cleanup.sh
,示例代码如下:
#!/bin/bash
trap './cleanup.sh' SIGINT
# 模拟主脚本的工作
while true; do
echo "脚本正在运行,按Ctrl+C中断"
sleep 1
done
在上述示例中,当用户按下Ctrl+C
(触发SIGINT
信号)时,会执行cleanup.sh
脚本中的清理操作。