특정 시간에 키보드 조명이 켜질 수 있도록 bash 스크립트를 만들었습니다. 그러나 나는 아직 그것을 작동시키지 못했습니다. "light" 명령을 확인했는데 작동합니다. 조건이 충족되는지 확인하기 위해 에코 문도 포함시켰는데 모두 건너뛰는 것 같습니다.
"test" 출력을 파일에 플롯하고 명령이 작성되었기 때문에 스크립트가 성공적으로 실행되었다는 것을 알고 있습니다.
내가 뭘 잘못하고 있는지 아는 사람 있나요?
멍청한 질문이라 죄송합니다...
#!/bin/bash
currenttime=$(date +%H:%M)
echo test
if [[ "$currenttime" > "17:00" ]]; then
if [[ "$currenttime" < "18:00" ]]; then
light -Srs "sysfs/leds/chromeos::kbd_backlight" 25
echo 1
fi
fi
if [[ "$currenttime" > "18:00" ]]; then
if [[ "$currenttime" < "19:00" ]]; then
light -Srs "sysfs/leds/chromeos::kbd_backlight" 50
echo 2
fi
fi
if [[ "$currenttime" > "19:00" ]]; then
if [[ "$currenttime" < "20:00" ]]; then
light -Srs "sysfs/leds/chromeos::kbd_backlight" 75
echo 3
fi
fi
if [[ "$currenttime" > "20:00" ]]; then
if [[ "$currenttime" < "06:00" ]]; then
light -Srs "sysfs/leds/chromeos::kbd_backlight" 100
echo 4
fi
fi
if [[ "$currenttime" < "07:00" ]]; then
if [[ "$currenttime" > "06:00" ]]; then
light -Srs "sysfs/leds/chromeos::kbd_backlight" 50
echo 5
fi
fi
if [[ "$currenttime" > "7:00" ]]; then
if [[ "$currenttime" < "17:00" ]]; then
light -Srs "sysfs/leds/chromeos::kbd_backlight" 0
echo 6
fi
fi
답변1
$currenttime의 값에 대해 테스트하는 것이 아니라 $currentime 값이 있는 문자열에 대해 테스트하는 것입니다. "$currenttime" 주위의 따옴표를 제거해야 합니다.
이와 같이:
if [[ $currenttime > "17:00" ]]; then
그러나 cronjob에서 명령을 실행하는 것이 더 쉬울 수도 있습니다. 이 스크립트를 어떻게 시작하는지 모르겠지만 cronjob으로 실행하고 매분 수행하면 매분 라이트 프로그램이 값을 조정하라는 명령을 받게 됩니다. 원하는 정확한 설정 시간에 명령을 실행하는 것이 나에게는 더 합리적입니다.
0 18 * * * light -Srs "sysfs/leds/chromeos::kbd_backlight" 25 >/dev/null 2>&1
0 19 * * * light -Srs "sysfs/leds/chromeos::kbd_backlight" 50 >/dev/null 2>&1
0 20 * * * light -Srs "sysfs/leds/chromeos::kbd_backlight" 100 >/dev/null 2>&1
0 6 * * * light -Srs "sysfs/leds/chromeos::kbd_backlight" 50 >/dev/null 2>&1
0 7 * * * light -Srs "sysfs/leds/chromeos::kbd_backlight" 0 >/dev/null 2>&1
편집하다:
아니면 매분마다 스크립트를 실행하고 조명 값을 늘리면 (max_light_val / minutes_till_next_setting)
재미있을 것입니다. :)