Linux 为什么使用此命令';Sh和Bash之间的输出是否不同?

Linux 为什么使用此命令';Sh和Bash之间的输出是否不同?,linux,bash,shell,sh,xorg,Linux,Bash,Shell,Sh,Xorg,我试图在Bash中运行以下if语句(以确定Xorg是否正在运行): 当我在Bash下运行它时,它不会打印任何内容。然而,如果我在sh下运行它,它会给我一个“Yes”和其他与xset相关的输出 if语句的输出在这两者之间怎么可能不同呢?有没有办法在Sh上修复它?&在Sh中不是有效的重定向。&将命令xset q发送到后台使用if!xset q>/dev/null 2>&1;然后是回声“测试”;fi如果需要,请尝试!xset q>/dev/null 2>&1;然后回应是;fi。我不相信sh支持&>快捷

我试图在Bash中运行以下if语句(以确定Xorg是否正在运行):

当我在Bash下运行它时,它不会打印任何内容。然而,如果我在sh下运行它,它会给我一个“Yes”和其他与xset相关的输出


if语句的输出在这两者之间怎么可能不同呢?有没有办法在Sh上修复它?

&
在Sh中不是有效的重定向。
&
将命令
xset q
发送到后台使用
if!xset q>/dev/null 2>&1;然后是回声“测试”;fi

如果需要,请尝试
!xset q>/dev/null 2>&1;然后回应是;fi
。我不相信
sh
支持
&>
快捷方式。
if ! xset q &>/dev/null; then echo Yes; fi