嵌入式linux开发:[7]shell

2025-10-09 00:39:11

1、1.1 shell

如下为一个3G拨号看门狗程序:

#!/bin/sh

echo $1

mdev  -s

/app/test.sh &

cp /app/resolv.conf  /etc/

sleep 10

ifconfig eth0 down

sleep 2

while true

do

        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

        fi

done

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 ]; then

sh /mnt/mtd/boot.sh

else

cp /app/boot.sh /mnt/mtd

sh /mnt/mtd/boot.sh

fi

1.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 TwoThree

3: let 给变量赋值

   let ncount=0

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