我不知道为什么我不能在这个简单的脚本中捕获 Ctrl^C。
#!/bin/bash
for number in $(seq 10); do
echo -n "."
sleep 2
done
function finish() {
echo "bye."
}
trap finish SIGINT
Run Code Online (Sandbox Code Playgroud)
我尝试使用INT
而不是SIGINT
,但没有成功。
受 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
Run Code Online (Sandbox Code Playgroud)