我创建了一个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
如何用数字删除两行?
我不知道数字是什么意思或为什么要打印数字
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
只需将标准ouput重定向到 /dev/null
:
pgrep ls >/dev/null && echo "Xcode is running" || echo "Xcode is not running"
这些数字是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