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
##########################################################################