Я пытаюсь создать сценарий bash, который позволяет мне переключать внешние экраны в зависимости от того, какие экраны подключены к моему ноутбуку (у меня есть два порта). Честно говоря, мой опыт в bash ограничен, так что это тоже может быть логической ошибкой bash. У меня есть такой сценарий:
#!/bin/bash
HDMI=$(xrandr | grep 'HDMI' | cut -d ' ' -f 1)
LVDS=$(xrandr | grep 'LVDS' | cut -d ' ' -f 1)
VGA=$(xrandr | grep 'VGA' | cut -d ' ' -f 1)
HDMI_CON=$(xrandr | grep "$HDMI connected")
HDMI_DIS=$(xrandr | grep "$HDMI disconnected")
VGA_CON=$(xrandr | grep "$VGA connected")
VGA_DIS=$(xrandr | grep "$VGA disconnected")
if [ VGA_CON ] && [ HDMI_CON ]
then
echo "VGA CON, HDMI CON"
elif [ VGA_CON ] && [ HDMI_DIS ]
then
echo "VGA CON, HDMI DIS"
elif [ VGA_DIS ] && [ HDMI_CON ]
then
echo "VGA DIS, HDMI CON"
else
echo "VGA DIS, HDMI DIS."
fi
Что происходит, так это то, что VGA_CON && HDMI_CON всегда возвращает true, в результате чего мой скрипт всегда думает, что оба дисплея подключены. Кто-нибудь, кто может просветить меня относительно того, что происходит?