检测Linux中显示是否有效

检测Linux中显示是否有效

有没有办法以受控方式检测显示是否有效?例如,如果我设置$DISPLAY=anydisplay$DISPLAY=0.0,有没有办法检查anydisplay0.0是否是我可以访问的有效显示?我正在编写一个旨在从 bash 脚本启动的程序,其目的是警告用户他们的显示是否有效,并在“控制台”模式下运行该程序。

答案1

xhost是一种探测显示可访问性的简约方法。

#!/usr/bin/env bash

xhost +si:localuser:$( whoami ) >&/dev/null && { 
    echo "GUI"
    myapp --gui
} || {
   echo "console"
   myapp --console
}

答案2

您可以让脚本退出并显示一条错误消息。如果您尝试启动图形操作并且无法访问显示,您将收到一条错误消息。因此,只需尝试以图形方式启动您正在执行的任何操作,如果无法退出并告诉用户使用另一个参数重新运行脚本。例如:

#!/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 的任何函数即可。

相关内容