我不知道为什么我无法在这个简单的脚本中捕获 Ctrl^C。
#!/bin/bash
for number in $(seq 10); do
echo -n "."
sleep 2
done
function finish() {
echo "bye."
}
trap finish SIGINT
我尝试过使用INT
而不是SIGINT
,但没有成功。
答案1
答案受 OP 编辑启发。请不要杀我……
脚本的顺序非常重要。首先,你需要把函数放在第一位。你还需要把陷阱放在循环之前。像这样的代码应该可以很好地工作:
#!/bin/bash
function finish() {
echo "bye bye!"
}
trap finish SIGINT
for number in $(seq 10); do
echo "TODO: Insert work here..."
# Insert work to do here.
done