下面是我尝试执行/自动化测试的脚本,
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?
提前致谢。
答案 0 :(得分:1)
使用timeout
命令。例如,它将在30秒后被杀死。
timeout 30 ksh ./run.ksh