Я пытался использовать 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
Почему бы не сделать одну команду, которая увеличится одним или уменьшится одним на основе опций, которые Вы передаете ей? Это - основная идея позади сценария, Вы будете видеть рев. Мы храним текущее значение в 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