如何在shell脚本中提供ctrl + C?

时间:2016-11-03 05:43:02

标签: bash shell

下面是我尝试执行/自动化测试的脚本,

 while [ 1 ]; do
 val=`expr $val + 1`
 ksh ./run.ksh   //This line needs the keyboard interaction so i can't run in background. It takes too long time to complete so i need to kill the above command using ctrl+C 
 echo "pid=$!"
 echo "pid=$$"
 sleep 40
 val1=val;
 done;

./ run.ksh - 是具有一些业务逻辑的脚本,用于将数据发送到其他计算机并等待响应。即使收到回复,它也会等待合理的时间来完成处理。因为它等待连接关闭并进行其他清理活动。

我的问题是我想在几秒钟之后通过发送ctrl + C来杀死该脚本。当我用Google搜索我发现$!可用于获取后台进程的进程ID,但在这种情况下不能使用相同的内容。

是否可以在shell脚本中发送ctrl + C?

提前致谢。

1 个答案:

答案 0 :(得分:1)

使用timeout命令。例如,它将在30秒后被杀死。

timeout 30 ksh ./run.ksh