我需要知道是否可以使用像ESC或ENTER这样的键来中断bash脚本?通过发送SIGINT / CTRL + C,我可以执行,但由于某些原因(请检查最后一行的注释),我无法使用CTRL + C。因此,我需要有一种自定义方式来引起中断。
换句话说,在以下脚本中,当按下CTRL + C时,将调用cleanup函数。现在需要修改此行为,以便在按下某些键,如ENTER或ESC时,应调用cleanup函数。
换句话说,在以下脚本中,当按下CTRL + C时,将调用cleanup函数。现在需要修改此行为,以便在按下某些键,如ENTER或ESC时,应调用cleanup函数。
cleanup() {
#do cleanup and exit
echo "Cleaning up..."
exit;
}
echo "Please enter your input:"
read input
while true
do
echo "This is some other info MERGED with user input in loop + $input"
sleep 2;
echo "[Press CTRL C to exit...]"
trap 'cleanup' SIGINT
done
查询:
- 在bash中是否可以使用自定义键来引起中断?
- 如果可以的话,如何实现?
注意:
原因:该脚本是从另一个C ++程序调用的,该程序具有自己的陷阱处理。因此,该脚本的陷阱处理与父程序冲突,最终导致终端挂起。在我的组织中,该程序的代码已被冻结,因此我无法更改其行为。我只能调整此子脚本。
$'\e'
匹配不仅仅是 ESC,还包括箭头和功能键。 - Pascal Polleunus