shell脚本使用记录

一些比较功能需求比较简单的可以考虑使用shell脚本来写,这样可以方便快捷稳定

1. 读取文件值,根据文件值1 或 0 来开启和关闭某些程序

a.  while :

    do

    done

是无限循环。

b. while read line

    do 

    echo $line

    done < value

是读取文件value中的每行。

c . if [ $line = "0" ]; then

    fi

是if语句,[]内左右两边都要留空格。

d. if []; then

    elif []; then

   fi

  是if-else语句。

e. 

ps | grep -v grep | grep modbusConfig | wc -l
wc -l 是用来计算结果的条数
grep -v grep是去掉结果中包含grep的记录


f. #!/bin/sh 是使用/bin/目录下的sh工具
#!/bin/sh
while :
do
cd /sys/class/gpio/gpio26/
while read line
do
echo $line
if [ $line = "0" ];then
killall pwmOut
killall modbusConfig
echo pwm_duty_cycle 100 > /tmp/my_fifo
elif [ $line = "1" ];then
sn=`ps | grep -v grep | grep pwmOut | wc -l`
if [ $sn -lt 1 ];then
cd /modbus/
./pwmOut &
fi
sm=`ps | grep -v grep | grep modbusConfig | wc -l`
if [ $sm -lt 1 ];then
cd /modbus/
./modbusConfig &
fi
fi
done < value
sleep 1
done

 

2.  watchdog 守护精灵,当目标程序不在运行时就会启动它

watchdog.sh

get_web_srv_sts()
{
    ret1=`ps | grep "$1" | grep -v grep | wc -l`
    ret2=`ps | grep "$1"|grep -v grep | grep "Z"|wc -l`
    if [ $ret1 -ge 1 ] && [ $ret2 -eq 0 ]
    then
      FUN_RET="UP"
    else
      FUN_RET="DOWN"
    fi
}

while true; do
  get_web_srv_sts "collector_arm"
  
  if [ $FUN_RET = 'UP' ]
   then
   echo "process running"
   sleep 60
  else
   echo "process down"
   killall collector_arm
   sleep 60
   cd /usr/file/ssf
   ./collector_arm&
   sleep 60
  fi
done

 

posted @ 2015-07-13 16:58  凤舞十天  阅读(532)  评论(0编辑  收藏  举报