利用 xrandr 监测屏幕
正常情况下,输入命令返回如下结果:
xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
HDMI-1 disconnected primary (normal left inverted right x axis y axis)
DP-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
1920x1080 60.00*+ 60.00 50.00 59.94 50.00
1680x1050 59.95
1600x900 60.00
1280x1024 75.02 60.02
1440x900 59.89
1280x960 60.00
1152x864 59.96
1280x720 60.00 50.00 59.94
1024x768 75.03 60.00
800x600 75.00 60.32
720x576 50.00
720x480 60.00 59.94
640x480 75.00 60.00 59.94
我这边有2个接口,HDMI-1(disconnected),DP-1(connected) ,HDMI-1未连接,DP-1已连接,所以采用 grep 对结果进行筛选:
xrandr | grep DP-1 | grep disconnected
注意,此处用 disconnected 筛选,如果用 connected 筛选,不管 connected或 disconnected 都会出现,没有意义,如果没有返回结果,则表明DP-1接口已连接(没有不连接)屏幕。
如果用shell判断,则可以参考:
if [ -z $(xrandr | grep DP-1 | grep disconnected)];then
dosomething
fi