linux - "No Output"返回代码 Shell 脚本

标签 linux shell scripting io rc

我正在尝试创建一个脚本来终止进程并在发出 kill -9 命令之前确认进程正在运行,但我遇到了一个错误,它总是假设有输出。

#!/bin/sh
rc=$?

#Ask to check for a process to kill
clear
echo "Please enter a process number you would like to kill"
echo ""
read proc
ps -ef | awk '{print $2}' | grep *$proc*
if [[ $rc != 0 ]]; then
        echo "Process not running or already killed"
        sleep 2
        exit $rc
else
        clear
        echo "Killing process..."
        sleep 2
#       kill -9 $proc
fi

最佳答案

使用 grep $proc 是错误的。如果你想杀死PID 22,它将匹配122220

测试 PID 是否存在的最简单方法是尝试向其发送信号 0:

if kill -0 "$proc" 2>/dev/null
then
    clear
    echo "Killing process..."
    sleep 2
    kill -9 "$proc"
else
    clear
    echo "Process not running or already killed"
    sleep 2
    exit 1
fi

Signal 0 不执行任何操作,它只是测试您是否能够向该进程发送信号。

关于linux - "No Output"返回代码 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17840427/

相关文章:

php - 使用PHP更改服务器的IP地址

c - 如何在 Linux 中用 C 写文件?

linux - 我将查询保存在 shell 脚本中的临时文件位置

linux - 在 Linux 中生成目录列表作为网络服务器索引页

bash - 使用 gnuplot 编写脚本 --where sed

linux - 如果系统内核不支持cifs,如何将文件从windows共享文件夹复制到linux

linux - 打开 shell 时出现不需要的消息

linux - 为什么反引号中的 cd 永远不起作用

linux - 连接多个命令的输出并将它们用作另一个命令的输入

bash - 我如何在 Bash 中解析命令行参数?