linux - 在 shell 脚本中终止程序 (CTRL+C)

标签 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”,但无法在 shell 脚本中传递“Ctrl+C 或\x03”作为参数。

enter image description here

最佳答案

您不会将 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/

相关文章:

linux - 当从 cron 调用脚本时,脚本中的 Sed 命令不起作用

regex - 在 bash 中使用正则表达式查找文件

linux - 当命令使用 EOF 变量时删除 BASH 中命令的输出

xcode - 如何从 xcode 构建阶段将参数传递给 shell 脚本

linux - Bash-检查目录中存在什么类型的文件

linux - ansible yum 检查更新解析输出以获得包列表

python - Linux 中的全局文本插入符位置

linux - 如何使用带有公钥的openSSL加密和解密xml

linux - 当 bash 中找不到标记时无法获取空子字符串

linux - 在多个文件中拆分 CSV,读取第 1 列以命名输出文件