我在bash脚本中有以下代码行:
# Is there an external monitor connected via HDMI?
has_external=$(xrandr 2> /dev/null | grep -q 'HDMI[0-9] connected')
xrandr
的输出可能包含:
HDMI1 connected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
对于我的生活,我无法弄清楚为什么has_external
变量总是评估为真,即使“{1}}的输出中没有”HDMI1连接“。有什么想法吗?
答案 0 :(得分:1)
我不确定你如何评估变量has_external
它恰好是"总是如此" - 这可能是你问题的根源。
您可以使用以下条件进行相同检查:
if xrandr 2> /dev/null | grep -q 'HDMI[0-9] connected'; then
# HDMI present
fi
或者:
xrandr 2> /dev/null | grep -q 'HDMI[0-9] connected'
rc=$?
if [[ $rc == 0 ]]; then
# HDMI present
fi