我创建了一个bash脚本来验证Xcode进程是否正在运行:
#! /bin/bash
PROCESS_NAME=Xcode
if pgrep $PROCESS_NAME; then
echo "Xcode is running";
else
echo "Xcode is not running";
if
但是当Xcode运行时,bash脚本会得到这个输出:
16115
16119
Xcode is running
如何删除带有数字的两行?
我不知道数字是什么意思或为什么打印数字
答案 0 :(得分:1)
pgrep
正在打印匹配进程的进程ID。用-q
告诉它安静。
if pgrep -q "$PROCESS_NAME"; then
echo "Xcode is running"
else
echo "Xcode is not running"
fi
如果您的pgrep
版本不支持-q
,只需将其标准输出重定向到/dev/null
:
if pgrep "$PROCESS_NAME" > /dev/null ; then
echo "Xcode is running"
else
echo "Xcode is not running"
fi
答案 1 :(得分:1)
只需将标准输出重定向到/dev/null
:
pgrep ls >/dev/null && echo "Xcode is running" || echo "Xcode is not running"
答案 2 :(得分:1)
这些数字是命令stdout
生成的pgrep
的一部分,您可以通过将其重定向到/dev/null
#!/bin/bash
PROCESS_NAME=Xcode
if pgrep "$PROCESS_NAME" >/dev/null; then
echo "Xcode is running";
else
echo "Xcode is not running";
fi
脚本最后一行的拼写错误,应为fi
。
你也可以向前迈出一步,如果有2>&1
引发任何错误消息,就可以取消错误消息,即
if pgrep "$PROCESS_NAME" >/dev/null 2>&1; then