使用true语句,Bash脚本循环中断

时间:2016-12-07 09:25:08

标签: shell loops sh

我正在尝试在两种系统状态下运行某些命令,而屏幕处于启用状态,当屏幕关闭时执行其他操作并且每次执行这些语句。我已经找到了这个方法,但是这只运行一次awake_state,再也没有进入sleep_state检查或再次返回awake_state。我通过添加“echo state>> log_file_path;”来调试在这两个陈述中。

#!/sbin/busybox sh

AWAKE_STATE()
{
echo 50 > /proc/sys/vm/swappiness;
}

SLEEP_STATE()
{
echo 80 > /proc/sys/vm/swappiness;
}

background_process=1;

if [ "$background_process" -eq "1" ]; then
(while true; do
    while [ "$(cat /sys/module/lm3697/parameters/sleep_state)" -ne "0" ]; do
        # when screen goes on it will pass.
        sleep "3";
    done;
    AWAKE_STATE;

    while [ "$(cat /sys/module/lm3697/parameters/sleep_state)" -ne "1" ]; do
        # when screen goes off it will pass.
        sleep "3";
    done;
    SLEEP_STATE;
done &);
fi;

/sys/module/lm3697/parameters/sleep_state表示屏幕状态和用另一个进程创建的background_process=1来打开此脚本,直到我更改它才会更改(它始终打开)。 sleep_state=1表示屏幕已关闭。

0 个答案:

没有答案