Есть ли способ определить, действителен ли дисплей контролируемым образом? Например, если я установил $DISPLAY=anydisplay
или $DISPLAY=0.0
, есть ли способ проверить, является ли anydisplay
или 0.0
верным отображением, к которому у меня есть доступ? Я пишу программу, которая должна быть запущена из bash-скрипта, и идея состоит в том, чтобы предупредить пользователя, если его отображение неверно, и запустить программу в режиме консоли.
2
2 ответа
3
xhost
- это минималистичный способ проверки доступности дисплея.
#!/usr/bin/env bash
xhost +si:localuser:$( whoami ) >&/dev/null && {
echo "GUI"
myapp --gui
} || {
echo "console"
myapp --console
}
0
Вы можете просто завершить работу сценария с информативным сообщением об ошибке. Если вы попытаетесь запустить графическую операцию, а дисплей не будет доступен, вы получите сообщение об ошибке. Итак, просто попытайтесь запустить все, что вы делаете графически, и если вы не можете выйти, и попросите пользователя повторно запустить скрипт с другим аргументом. Например:
#!/usr/bin/env bash
xterm 2>/dev/null ||
(echo "The display $DISPLAY is not accessible."
echo "Please run the script again using the '--no-gui' optiion" &&
exit 1)
Просто замените xterm
любой функцией, которую вы используете для запуска вашего GUI.