Пользовательская команда - меньше, чем текущий уровень яркости

Я пытался использовать xbacklight, но он не работал так, я сделал некоторые пользовательские глобальные команды для управления яркостью. Например:

"Яркий":

sudo bash -c "echo 20 > /sys/class/backlight/acpi_video0/brightness"

"Середина":

sudo bash -c "echo 10 > /sys/class/backlight/acpi_video0/brightness"

"Темный":

sudo bash -c "echo 0 > /sys/class/backlight/acpi_video0/brightness"

Я хочу сделать еще две команды, та, которая увеличит яркость одной и той, которая уменьшит яркость одной.

Есть ли некоторый код, я могу использовать вместо 'эха "ЧИСЛО"', которое уменьшится / увеличивают текущее значение одним.

Я знаю, что текущий уровень яркости является документом:/sys/class/backlight/acpi_video0/brightness, который в настоящее время читает "20" и изменяется при использовании команд яркости.

Я понятия не имею, как что эта команда была бы похожа только что-то

sudo bash -c "echo [ONE LESS THAN] /sys/class/backlight/acpi_video0/brightness > /sys/class/backlight/acpi_video0/brightness" 

Я не знаю, возможно ли это, но благодарит за какую-либо справку.

Обновление

Каково корректное использование?

Когда я работаю "sudo./brightness.sh +1", это производит:

Usage:
sudo brightness.sh [ + | - | INTEGER ]
./brightness.sh: 10: [: +: unexpected operator
./brightness.sh: 23: [: +: unexpected operator
./brightness.sh: 38: ./brightness.sh: [[: not found
<<< ERROR: wrong parameter 
./brightness.sh: 44: ./brightness.sh: printUsage: not found

и когда я работаю "sudo, колотят brightness.sh +1", он производит:

Usage:
sudo brightness.sh [ + | - | INTEGER ]
brightness.sh: line 27: [: -1: unary operator expected
brightness.sh: line 34: : No such file or directory
1
задан 5 January 2016 в 08:35

1 ответ

Почему бы не сделать одну команду, которая увеличится одним или уменьшится одним на основе опций, которые Вы передаете ей? Это - основная идея позади сценария, Вы будете видеть рев. Мы храним текущее значение в CURRENT переменная, затем используем bash арифметическое расширение $(( numberA + numberB )), чтобы увеличиться или уменьшиться одним. Что касается принятия решений, мы называем сценарий с единственным параметром командной строки + для увеличения, или - для уменьшения.

На предложение muru в комментариях, я также сделал маленькое редактирование к коду, который теперь позволяет Вам звонить brightness.sh с целочисленным параметром меньше, чем или равняется макс. яркости

#!/bin/bash

###########
# Variables
###########
FILE="/sys/class/backlight/acpi_video0/brightness"
MAX="$(cat /sys/class/backlight/acpi_video0/max_brightness)"
MIN=0
CURRENT="$( cat  $FILE )"

###########
# functions
###########

function printUsage
{
  echo "Usage:"
  echo "sudo brightness.sh [ + | - | INTEGER ]"
}

######
# Main
######


if [ $# -eq 0  ];
then
   printUsage
   exit 0
fi


if [ "$1" == "+" ];
then
   NEW=$(( $CURRENT+1  ))
   # are we trying to go past maximum value ? If yes, quit
   if [ $NEW -ge $MAX  ]
   then 
       echo ">>> ERROR: Current value already the maximum; "
       echo ">>> Exiting"
       exit 1
   fi
   # if not, then proceed
   echo "$NEW" > "$FILE"

elif [ "$1" == "-"  ];
then
   NEW=$(( $CURRENT-1  ))
   # Is NEW value going past 0 ? If yes, quit
   if [ $NEW -le $MIN ]; 
   then
       echo ">>> Error: already at minimum. "
       echo ">>> Exiting."
       exit 1
    fi
    # If not, then continue
    echo "$NEW" >  "$FILE"

# Note: new test w/ regex; for portability
# probably better idea to use awk
elif [[ "$1" =~ ^[0-9]+$ ]] && [ $1 -le $MAX   ];
then
    echo "$1" > "$FILE"

else
    echo "<<< ERROR: wrong parameter "
    printUsage
    exit 1
fi
3
ответ дан 7 December 2019 в 12:42

Другие вопросы по тегам:

Похожие вопросы: