如何使用xset关闭屏幕?

时间:2013-06-21 07:50:04

标签: linux bash shell xorg

您好我正在尝试运行此脚本,当我调用脚本时关闭屏幕。

脚本代码:

#!/bin/sh
STATUS=`xset -q | grep "Monitor is" | awk '{print $3}'`
if [ "${STATUS}" = "On" ]
then
xset dpms force off
else
xset dpms force on
fi
exit 0

但是当我调用脚本时,我收到此错误

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  142 (DPMS)
  Minor opcode of failed request:  6 (DPMSForceLevel)
  Serial number of failed request:  10
  Current serial number in output stream:  12

2 个答案:

答案 0 :(得分:2)

#!/bin/bash
export DISPLAY=:0.0

if [ $# -eq 0 ]; then
  echo usage: $(basename $0) "on|off|status"
  exit 1
fi

if [ $1 = "off" ]; then
  echo -en "Turning monitor off..."
  xset dpms force off
  echo -en "done.\nCheck:"
  xset -q|grep "Monitor is"
elif [ $1 = "on" ]; then
  echo -en "Turning monitor on..."
  xset dpms force on
  echo -en "done.\nCheck:"
  xset -q|grep "Monitor is"
elif [ $1 = "status" ]; then
  xset -q|sed -ne 's/^[ ]*Monitor is //p'
else 
  echo usage: $(basename $0) "on|off|status"
fi

从这里开始:http://systembash.com/content/how-to-turn-off-your-monitor-via-command-line-in-ubuntu/

答案 1 :(得分:0)

    STATUS_MONITOR=$(xset q | grep "Monitor is" | awk '{print $3}')

    if [ "$STATUS_MONITOR" == "On" ]; then

        echo "Status = "$STATUS_MONITOR

    else

        echo "Status = "$STATUS_MONITOR

    fi

它为我工作。