BASH-进程状态

BASH-进程状态,bash,Bash,我想知道为什么这不管用 $result=`[ pgrep -x "gedit" ] && echo "Running" || echo "Stopped" ` 我得到: -bash:[:-x:应为二进制运算符 如果我运行pgrep-x“gedit”direct,我将获得进程ID 有人能告诉我为什么失败吗? 谢谢您不需要括号来运行和检查pgrep的退出状态: result=$(pgrep -x "gedit" > /dev/null && echo "Run

我想知道为什么这不管用

$result=`[ pgrep -x "gedit" ] && echo "Running" || echo "Stopped" `
我得到:

-bash:[:-x:应为二进制运算符

如果我运行
pgrep-x“gedit”
direct,我将获得进程ID

有人能告诉我为什么失败吗?
谢谢

您不需要括号来运行和检查
pgrep的退出状态

result=$(pgrep -x "gedit" > /dev/null && echo "Running" || echo "Stopped")

运行和检查
pgrep的退出状态不需要括号:

result=$(pgrep -x "gedit" > /dev/null && echo "Running" || echo "Stopped")

您可以使用以下代码来解决问题:

#!/bin/bash

result=\`pgrep -x gedit && echo running || echo not\`

echo $result

您可以使用以下代码来解决问题:

#!/bin/bash

result=\`pgrep -x gedit && echo running || echo not\`

echo $result

您想做什么?您是否知道
[]
test
命令的同义词?如果是,为什么要在测试块内执行
pgrep-x“gedit”
?您想做什么?您是否知道
[]
test
命令的同义词?如果是,为什么要在测试块内执行
pgrep-x“gedit”