美文网首页代码改变世界
Android内核——Shell脚本备忘

Android内核——Shell脚本备忘

作者: nancymi | 来源:发表于2015-03-30 18:43 被阅读252次

    script——不需要编译的程序文件

    可以在脚本中调用Linux命令。


    获取输入

    1. 执行脚本时用户的输入:$n,代表输入中的第n个参数。
      #!/bin/bash echo $1 echo $2 echo $3
      执行:$./me i love you
      输出:
      i
      love
      you
    2. 将前一个脚本的输出作为该脚本的输入
    3. 脚本函数的参数

    变量定义

    所有的变量都是字符串,可直接赋值,赋值语句中不能有空格。
    引用变量时:在变量前加$符号,并用双引号包含以避免引用混淆。
    #!/bin/bash
    A=b
    All=all
    echo "$A"ll
    echo $All


    条件判断

    #!/bin/bash
    if  [ "$1" = "normal" ]
    then 
        echo "this is normal case"
    elif  [ -z "$1" ]
    then
        echo "no input, ignal..."
    fi
    

    ~if的[后必须有空格


    while []...do... done语句

    #!/bin/bash
    echo "please use add or delete or exit"
    ACTION="default"
    while [ -n $ACTION ]
    do
        read ACTION
        case $ACTION in
            add)
                echo "add somebody"
                ;;
            delete)
                echo "delete somebody"
                ;;
            exit)
                echo "complete"
                break
                ;;
            *)
                echo "invalidate action, please re-enter"
                ;;
        esac
    done
    

    for循环

    Bash中的for循环类似于java中的foreach语句,一般与in联合使用,用于才能够某个集合中取出元素并对其进行操作。
    #!/bin/bash
    for X in 1 2 3 4 5 hello
    do
    echo $X
    done
    ~显示in集合中的所有元素,in集合——in语句后紧跟的目标集合。
    #!/bin/bash
    for X in ls
    do
    echo basename $X
    echo dirname $X
    done
    uname
    uname用于显示操作系统的内部名称。
    #!/bin/bash
    #rename files without ext name to txt name
    #author:Yuandan Kerr
    for X in ls
    do
    Base="basename $X"
    if [ -z echo $Base | grep "\." ]
    then
    mv $Base $Base.txt
    echo $Base
    fi
    done


    函数

    #!/bin/bash
    stract()
    {
        OUT="$1"" ""$2"
        return 0 
    }
    
    stract2()
    {
        echo "$1"" ""$2"
        return 3
    }
    
    A="bird"
    B="mouse"
    
    OUT=""
    stract $A $B 
    echo $OUT
    OUT2=`stract2 $A $B`
    echo $?
    echo $OUT2
    

    定义函数的特点:

    • 不需要定义参数,在函数实体中直接使用$n代表输入的第n个参数。
    • return返回的是函数执行完毕的退出值,OUT赋值结果是函数体中echo "$1"" ""$2"输出的结果。
    • OUT2='echo "$1"" ""$2"' -> 调用函数时,要想获得函数的输出,并且赋值给某个变量,则函数的执行必须包含在``符号之间。
    • $3 - > 获得函数的返回值而不是输出。
      输出结果:
      bird mouse
      3
      bird mouse

    常用内置符号常量

    • $@ -> 代表全部参数,test a b c -> "a","b","c"三个字符串
    • $* -> 全部参数,test a b c -> "a b c"一个字符串
    • $# -> 参数的个数
    • $? -> 上一个命令的返回结果
    • $$ -> 当前命令所在的进程号(PID)

    相关文章

      网友评论

        本文标题:Android内核——Shell脚本备忘

        本文链接:https://www.haomeiwen.com/subject/wuxoxttx.html