我正在尝试执行带有两个参数的 shell 脚本之一
- 进度开始:start_process
- 终止程序:CTRL+C
问题是当我调用 shell 脚本时,它不会终止程序,所以我手动 CTRL+C 终止程序
我尝试应用几个修复程序,但没有一个起作用
shell 脚本
printf "start_process\n'\x03\'n" | pptslm > logFile.txt
我成功地传递了参数“start_process”,但无法在 shell 脚本中传递“Ctrl+C 或\x03”作为参数。
最佳答案
您不会将 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
关于linux - 在 shell 脚本中终止程序 (CTRL+C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54483284/