我如何重新映射 Ctrl+C 以使用另一个键发送中断信号?

我如何重新映射 Ctrl+C 以使用另一个键发送中断信号?

我在 bash 中有一个进程,我可以使用 Ctrl+C 来调用它以停止。据我所知,这相当于发送 exit(1) 信号。我想通过反复键入 Esc 键而不是 Ctrl+C 来循环遍历这些进程以获取不同输入文件的列表。这里我使用 ping 处理 URL 列表,仅作为示例:

cat /tmp/file
stackoverflow.com
superuser.com
serverfault.com
programmers.stackexchange.com

我怎样才能通过键入 Escape 而不是 Ctrl+C 来循环列表并跳至下一个?

cat /tmp/file | while read i; do ping $i; done

答案1

您可以使用stty来设置中断字符。

stty intr q

将中断字符设置为您的“q”键。(抱歉,我目前不确定 ESC 代码)。要将其设置回 CTRL+C,请执行以下操作:

stty intr ^C

相关内容