shell echo 打印回车
echo -e "ec20 power init:Not OK,Please wait\n"
字符串提取
#!/bin/bash ########################################################################## #gpio ec20 reset echo 87 > /sys/class/gpio/export; echo out > /sys/class/gpio/gpio87/direction; ln -s /sys/class/gpio/gpio87/value /dev/ec20_reset echo 0 > //dev/ec20_reset #gpio ec20 power echo 89 > /sys/class/gpio/export; echo out > /sys/class/gpio/gpio89/direction; ln -s /sys/class/gpio/gpio89/value /dev/ec20_poweron echo 1 > /dev/ec20_poweron #gpio ec20 net status echo 22 > /sys/class/gpio/export; echo in > /sys/class/gpio/gpio22/direction; ln -s /sys/class/gpio/gpio22/value /dev/ec20_status #gpio ec20 led simcard echo 46 > /sys/class/gpio/export; echo out > /sys/class/gpio/gpio46/direction; ln -s /sys/class/gpio/gpio46/value /dev/ec20_led_sim echo 1 > /dev/ec20_led_sim #gpio ec20 led dial echo 44 > /sys/class/gpio/export; echo out > /sys/class/gpio/gpio44/direction; ln -s /sys/class/gpio/gpio44/value /dev/ec20_led_dial echo 1 > /dev/ec20_led_dial #gpio ec20 led online echo 47 > /sys/class/gpio/export; echo out > /sys/class/gpio/gpio47/direction; ln -s /sys/class/gpio/gpio47/value /dev/ec20_led_signal echo 1 > /dev/ec20_led_signal #gpio ec20 led TNT signal echo 45 > /sys/class/gpio/export; echo out > /sys/class/gpio/gpio45/direction; ln -s /sys/class/gpio/gpio45/value /dev/ec20_led_online echo 1 > /dev/ec20_led_online ########################################################################## #start ec20 ppp,init while [ ! -c "/dev/ttyUSB3" ] do sleep 1 done if [ -f /opt/ec20info.log ]; then rm /opt/ec20info.log fi cat /dev/ttyUSB2 > /opt/ec20info.log & ec20_status="ERROR" #check ec20 power is ok while [ "$ec20_status" != "OK" ] do sleep 1 echo "AT" > /dev/ttyUSB2 ec20_status=`grep OK /opt/ec20info.log | tail -1` echo -e "ec20 power init:Not OK,Please wait\n\r" done sleep 10 while [ "$ec20_status" != "OK" ] do sleep 1 echo "AT" > /dev/ttyUSB2 ec20_status=`grep OK /opt/ec20info.log | tail -1` echo -e "ec20 power init:Not OK,Please wait\n\r" done echo -e "ec20 power init :OK\n\r" #check ec20 ppp is ok cd /etc/ppp/peers pppd call unicom > /opt/ec20.log & echo -e "pppd call unicom & > /opt/ec20.log\n\r" ec20_status="ERROR" `ifconfig > /opt/ec20ifconfig.log ;grep ppp0 /opt/ec20ifconfig.log -A 8 | sed -n "3p" | awk -F" " '{print $3}' > /opt/ec20info.log` ec20_status=`grep RUNNING /opt/ec20info.log | tail -1` cnt=0 while [ "$ec20_status" != "RUNNING" ] do sleep 1 #check timeout,reset ec20 cnt=`expr $cnt + 1` if [ $cnt -eq 5 ] || [ $cnt -eq 10 ] || [ $cnt -eq 15 ] || [ $cnt -eq 20 ] || [ $cnt -eq 25 ] || [ $cnt -eq 30 ] || [ $cnt -eq 35 ] || [ $cnt -eq 40 ] || [ $cnt -eq 45 ] || [ $cnt -eq 50 ] || [ $cnt -eq 55 ] || [ $cnt -eq 60 ];then echo -e "ec20 ppp dail:Not OK,Please wait\n\r" fi if [ $cnt -gt 60 ] ;then cnt=0 echo -e "Warning:Reset ec20 now ...!!!\n\r" echo 1 > /dev/ec20_reset echo 0 > /dev/ec20_poweron sleep 15 echo 0 > /dev/ec20_reset echo 1 > /dev/ec20_poweron fi #check pppd call unicom is runing ec20_status=`ps -a > /opt/ec20info.log ; grep -w "pppd call unicom" /opt/ec20info.log | tail -1 | awk -F" " '{print $4,$5,$6}'` if [ "$ec20_status" != "pppd call unicom" ];then #restart ec20 echo -e "Warning:Reset ec20 now ...!!!\n\r" echo 1 > /dev/ec20_reset echo 0 > /dev/ec20_poweron sleep 15 echo 0 > /dev/ec20_reset echo 1 > /dev/ec20_poweron #wait usb ok while [ "$ec20_status" != "OK" ] do sleep 1 echo "AT" > /dev/ttyUSB2 ec20_status=`grep OK /opt/ec20info.log | tail -1` echo -e "ec20 power init:Not OK,Please wait\n\r" done #restart pppd sleep 5 echo -e "ERROR:pppd exit already ...!!!\n\r" echo -e "Warning:pppd restart now ...!!!\n\r" pppd call unicom > /opt/ec20.log & fi #check ppp is ok `ifconfig > /opt/ec20ifconfig.log ;grep ppp0 /opt/ec20ifconfig.log -A 8 | sed -n "3p" | awk -F" " '{print $3}' > /opt/ec20info.log` ec20_status=`grep RUNNING /opt/ec20info.log | tail -1` done echo -e "ec20 ppp connect:OK\n\r" ######################################################################### #check simcard & ppp dial & ec20 service online & ANT signal while true do sleep 1 #check simcard----------------------------------------------- echo "AT+ccid" > /dev/ttyUSB2 ec20_status=`grep OK /opt/ec20info.log | tail -1` if [ "$ec20_status" == "OK" ] ; then echo 0 > /dev/ec20_led_sim else echo 1 > /dev/ec20_led_sim fi #check ppp dial----------------------------------------------- `ifconfig > /opt/ec20ifconfig.log ;grep ppp0 /opt/ec20ifconfig.log -A 8 | sed -n "3p" | awk -F" " '{print $3}' > /opt/ec20info.log` ec20_status=`grep RUNNING /opt/ec20info.log | tail -1` if [ "$ec20_status" == "RUNNING" ] ; then echo 0 > /dev/ec20_led_dial else echo 1 > /dev/ec20_led_dial fi #check ANT signal----------------------------------------------- echo "AT+CSQ" > /dev/ttyUSB2 `grep +CSQ: /opt/ec20info.log | sed 's/+CSQ: //g' | tail -1 | awk -F"," '{print $1}' > /opt/ec20signal.log` ec20_status=`cat /opt/ec20signal.log | tail -1` if [ "$ec20_status" != "99" ] ; then echo 0 > /dev/ec20_led_signal else echo 1 > /dev/ec20_led_signal fi #check pppd call unicom is runing ec20_status=`ps -a > /opt/ec20info.log ; grep -w "pppd call unicom" /opt/ec20info.log | tail -1 | awk -F" " '{print $4,$5,$6}'` if [ "$ec20_status" != "pppd call unicom" ];then echo -e "ERROR:pppd exit already ...!!!\n\r" echo -e "Warning:pppd restart now ...!!!\n\r" pppd call unicom > /opt/ec20.log & fi done ##########################################################################