嵌入式linux开发:[7]shell

2025-05-30 12:48:17

1、1.1 shell如下为一个3G拨号看门狗程序:#!/bin/shecho $1mdev -s/app/test.sh &cp /app/resolv.conf /etc/sleep 10ifconfig eth0 downsleep 2while truedo cp/app/resolv.conf /etc/ ping -s 1 -c 1 $1 if [ "$?" !="0" ] then ncount=$((ncount+1)) echo "ttt " if [ $ncount -eq 5 ] then killall -9 pppd let ncount=0 sleep 2 /app/pppd call wcdma& fi sleep 1 else let ncount=0 echo $ncount sleep 2 fidone

2、1.1.1 变量linux shell的变量可以不定义而直接使用1.1.2 比较一、test命令  test命令是shell内部命令,它计算作为其参数的表达式是真还是假。  如果表达式为真,则test返回0(注意与C语言0表示false不同),如果表达式为假,返回非0。  shell提供了另外一个调用test命令的方式,就是用方括号[]来代替单词test。  调用test命令的格式为:  test expr1 opr expr2 或是 [ expr1 opr expr2 ]  test opr expr1 或是 [ opr expr1 ] (注意方括号与表达式之间的空格必须存在)二、逻辑运算符  -a  expr1 -aexpr2  逻辑与  -o  expr1 -oexpr2  逻辑或  !  !expr1      逻辑非三、数值判断  -eq  num1 -eqnum2  是否相等  -ne  num1 -nenum2  是否不相等  -gt  num1 -gtnum2  是否大于  -ge  num1 -genum2  是否大于等于  -lt  num1 -ltnum2  是否小于  -le  num1 -lenum2  是否小于等于四、字符串判断  =  str1 = str2  字符串是否相等  !=  str1 != str2  字符串是否不等  -n  -n str1    字符串长度是否不等于0  -z  -z str2    字符串长度是否等于0五、文件判断  -r  -r filename  文件是否存在且可读  -w  -w filename  文件是否存在且可写  -s  -s filename  文件是否存在且长度非0  -f  -f filename  文件是否存在且是普通文件  -d  -d filename  文件是否存在且是一个目录六、命令行参数/位置变量  $0  脚本的名字  $1, $2, ..., $9  脚本第1个到第9个命令行参数  $#  命令行参数的个数  $@ 或是 $*  所有命令行参数  $?  最后一条命令的退出状态  $$  正在执行进程的ID(PID)1.1.3 条件if [ -e /mnt/mtd/boot.sh ]; thensh /mnt/mtd/boot.shelsecp /app/boot.sh /mnt/mtdsh /mnt/mtd/boot.shfi1.1.4 循环1.1.5 运算1:使用 expr 外部程式 加法 r=`expr 4 + 5` echo $r 注意! '4' '+' '5' 这三者之间要有空白 r=`expr 4 * 5` #错误 乘法 r=`expr 4 \* 5`2:使用 $(( )) r=$(( 4 + 5 )) echo $r  给位置变量赋值:  set One TwoThree  echo $1 $2 $3  结果显示:One TwoThree3: let 给变量赋值 let ncount=0

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢