假设我知道进程的 PID 并想在 ps -A 中进行搜索,我该怎么做?我尝试这样做:
echo "Enter PID to search: "
read PID
search=$(ps -A | grep -v PID | awk '{print $1}')
Run Code Online (Sandbox Code Playgroud)
这会返回一长串PID。那么我如何才能使用输出的每个单独值并执行以下操作:
if [ "$PID" = "*each_value_in_search_list*" ]; then
........
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我试图将用户输入的内容与我的命令的输出进行比较,那么我该怎么做呢?我首先做的是正确的方法吗?或者有没有其他方法可以做到这一点?
感谢所有回答这个问题的人的帮助。(:
grep 的 -v 开关执行反向搜索,换句话说,您将获得不需要的所有内容。设置变量后,您还应该引用它以 $ 为前缀。
尝试这个
#!/bin/bash
echo "Enter PID to search: "
read PID
search=$(ps --pid $PID -o comm=)
if [ $search ]
then
echo "Program: $search"
else
echo "No program found with PID: $PID"
fi
Run Code Online (Sandbox Code Playgroud)