在外壳程序脚本中终止程序(CTRL + C)

时间:2019-02-01 16:19:13

标签: linux bash shell

我正在尝试执行带有两个参数的shell脚本之一

  1. 进度的开始:start_process
  2. 终止该程序:CTRL + C

问题是当我调用shell脚本时,它不会终止程序,因此我手动CTRL + C来终止程序

我尝试应用了一些修复程序,但是都无法正常工作

shell脚本

 printf "start_process\n'\x03\'n" | pptslm  > logFile.txt

我成功地成功传递了参数“ start_process”,但无法在外壳程序脚本中传递“ Ctrl + C或\ x03”作为参数。

enter image description here

1 个答案:

答案 0 :(得分:3)

您没有将CTRL-C“管道”传递给程序,而是向进程发送信号(顺便说一句:在终端中按CTRL-C会转换为SIGINT信号) 。执行此操作的标准工具是kill命令。

由于您尚未提供myscript.sh的来源,因此我在这里猜测:

#!/bin/bash
# create child process
pptslm  >logFile.txt &
_pid=$!
echo "child PID ${_pid}"

# wait for 2 seconds
sleep 2

# kill child process using SIGINT
echo "Killing child PID ${_pid}"
kill -INT ${_pid}
exit 0