zoukankan      html  css  js  c++  java
  • 嵌入式成长轨迹2【嵌入式环境及基础】【嵌入式Linux软件开发入门】【Shell脚本基础】

    【Shell常用命令讲解】
    一、命令替换
    echo "The date is `date`"  在单个命令行中使用多个命令
    $ expr 4 + 5               该命令的输出作为标准输出,用于求值算术表达式,注意4后5前都有空格,否则会考虑为字符串
    $((expression))            同样功能,不会考虑为字符串


    echo                   输出
    echo $变量             输出变量对应的值
    read +变量             接下来的输入赋予变量
    其中打入-n表示不换行(注意,是不换行)

    二、条件执行
    test和 [ ] 两个命令都为表达式求值,返回布尔值

    1、[]前后都应有空格

    2、test
    test也可以用于字符串状态、检查文件状态(是否存在)
    test + (以下:)
    1)数值测试
    -eq ==
    -ne !=
    -gt >
    -ge >=
    -lt <
    -le <=
    2)字符串测试
    =、!=
    -z + 字符串 字符串是否长度为零
    -n + 字符串 字符串是否长度非零
    3)文件测试
    -e + 文件 是否存在
    -r + 文件 是否存在且可读
    -w + 文件 是否存在且可写
    -x + 文件 是否存在且可执行
    -s + 文件 是否存在且至少有一个字符
    -d + 文件 是否存在且为目录
    -f + 文件 是否存在且为普通文件
    -c + 文件 是否存在且为字符特殊文件
    -b + 文件 是否存在且为块特殊文件
    文件测试中的连接符
    并且 -a
    或者 -o
    非 !

    三、if……fi结构
    if[]
     then ……
    elif []
     then ……
     else ……
    fi

    四、case……esac结构
    使用这个构造依据变量的值执行一组特定指令
    case $变量 in
    值1)echo “”;;
    值2)echo “”;;
    *)echo“”;;
    esac
    双分号有break直接跳出此结构的功能

    五、循环
    1、while构造

    while <条件>
    do
     <各种命令>
    done


    2、until构造
    求值模式与while相反,将执行直到求值条件为真
    执行最少一次

    3、for构造
    for 变量名 in 值列表
    do……
    done

    其中,break和continue也可使用

    命令+>>+文件 将命令结果重定向到文件

    六、控制进程的执行
    用于请求后台进程的符号&
    $ wc tempfile &
    [1] 2082
    $ vi newfile

    七、后台进程
    1、检查后台进程
    Ps 在进程状态为每个当前活动的每个进程产生一行入口(代号)

    2、终止后台进程
    $ kill 278

    八、查看完成一个命令所花的时间——time
    $ time find /etc -name "passwd" 2> /dev/null
    重定向到/dev/null把错误信息忽略掉

    九、管道的介绍
    | 是管道符号
    它指示shell:
    |前面的命令的输出作为|之后的命令输入发送

    如:
    ls -l | more
    分页显示 查看详细信息


    【demo代码】

    一、

    The First Shell!

    1 echo "please enter your name:"
    2
    3 read fname
    4
    5 echo ${fname}
    6
    7 s=xxx
    8
    9 echo $s



    #对应终端操作
    [root@localhost ~]# ls -l
    First.sh
    -rw-r--r-- 1 root root 6 02-21 19:02 First.sh

    [root@localhost ~]# ./First.sh

    bash:
    ./First.sh: 权限不够

    [root@localhost ~]# chmod a+x First.sh

    [root@localhost ~]# ls -l
     First.sh
    -rwxr-xr-x 1 root root 6 02-21 19:02 First.sh
    [root@localhost ~]# ./First.sh

    please enter your name:

    mood

    mood

    xxx

    [root@localhost ~]# vi First.sh

    [root@localhost ~]# echo $HOME
     
    /root

    [root@localhost ~]# echo $PATH
    /usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin

    [root@localhost ~]# vi /etc/profile

    在里边进行改动,添加当前路径.作为PATH其中之一,重启动即可直接访问当前目录下的文件无须加./

    二、


    # CallCenter.sh

    1 #!/bin/bash
    2
    3 echo "Please enter Total number:"
    4 read total
    5 echo "Please enter resolve number:"
    6 read res
    7 echo $((total-res))


     

    三、

    # Avg.sh

     1 echo "Please enter score:"
    2 read score
    3 if [ $score -lt 80 ]
    4 then
    5 echo "Bad!"
    6 elif [ $score -ge 80 -a -lt 90 ]
    7
    8 then
    9 echo "Good!!"
    10 else
    11 echo "Very Good!!"
    12
    13 fi
  • 相关阅读:
    12.python中的列表
    11.python中的元组
    10.python中的序列
    9.python的布尔类型与流程控制
    8.python中的数字
    7.python字符串-内置方法分析
    Boost--lexical_cast 一个方便安全高效的string转换库
    STL进阶--vector vs deque
    STL进阶--删除元素
    STL进阶--相等 vs 等价 (Equality vs Equivalence)
  • 原文地址:https://www.cnblogs.com/zeedmood/p/2363633.html
Copyright © 2011-2022 走看看