美文网首页
NDK - shell 脚本基础

NDK - shell 脚本基础

作者: 书文换酒钱 | 来源:发表于2018-09-30 15:33 被阅读0次

    Shell 是一个C语言编写的程序,它是用户使用Linux的桥梁。是一门命令语言,又是一门程序设计语言。

    Linux的Shell种类有很多,常见的如下:

    • Bourne Shell (/usr/bin/sh或/bin/sh)
    • Bourne Again Shell (/bin/bash)
    • Shell for Root (/sbin/sh)
    • .......
      bash由于易用和免费,被广泛使用。好了,不多说了,直接上干货:

    Hello World

    #!/bin/bash
    echo "Hello World!"
    

    脚本第一行 #!bin/bash表示告诉系统这个脚本需要哪种解释器来执行(属于哪种shell程序)

    shell脚本的执行
    首先shell脚本得有执行权限

    chmod +x xx.sh    # +x 执行权限 
    ./xx.sh           # 执行脚本
    sh xx.sh          # 第二种执行方式
    

    变量、字符串、数组

    #变量
    #跟Java的命名规则类似,就不举例了
    a=10
    
    #使用表达式或者命令赋值
    files=`ls .`
    #使用变量
    echo $files
    echo ${files}
    
    #只读变量
    readonly files
    #删除变量
    unset files
    
    #字符串
    #使用 ' 或者 " 来定义字符串,不同的
    # ' 中不能使用变量
    var="dir contains ${files}"
    
    #字符串拼接
    name="caterpillar"
    splice1="hello, "$name" !"
    splice2="hello, ${name} !"
    echo $splice1 $splice2
    #获得长度
    echo ${#name}
    #截取字符串
    echo ${name:0:5}   #输出 cater   从第一个开始截取 5 个字符
    
    #数组
    arr=(1 2 3)
    echo ${arr[0]}
    #获取所有元素
    echo ${arr[@]}
    #获取数组元素的个数
    length=${#arr[@]}
    length=${#arr[*]}
    

    传参
    在执行shell脚本,向脚本传递参数,脚本内获取参数的格式为: $n , n可以看成是index,1为执行脚本的第一个参数,2为执行脚本的第二个参数,以此类推

    echo "第一个参数为:$1";
    echo "第二个参数为:$2";
    
    #./test.sh 1 2     
    
    参数处理 说明
    $# 传递到脚本的参数个数
    $* 获得所有参数(不是数组), 123...$n的形式
    $@ 与*相同,但是使用时加引号。"1","2"..."$n"的形式

    运算符

    a=10
    b=20
    c=`expr $a + $b`
    #特殊的需要转义
    c=`expr $a \* $b`
    
    #关系运算符
    # -eq 是否相等
    # -ne 是否不想等
    # -gt >
    # -lt <
    # -ge >=
    # -le <=
    # ! 非
    # -o   等于 ||
    # -a   等于 &&
    
    #字符串
    # = 字符串相等
    # != 字符串不相等
    # -z 字符串长度为0   true
    # -n 字符串长度不为0 true
    
    #文件
    # -d 目录
    # -f 普通文件
    # -r 可读
    # -w 可写
    # -x 可执行
    # -s 文件不为空(有内容) true
    # -e 文件/目录存在 
    

    流程控制

    #for 循环
    arr=(1 2 3 4)
    for var in ${arr[@]}
    do 
        echo $var
    done
    
    #while语句
    a = 1
    while [$a -le 6]    #while (($a<=6))
    do
        echo $a
        let "a++"
    done
    
    #until循环
    until(($a>=10))
    do
        echo $a
        let "a++"
    done
    
    #case 
    a=1
    case $a in
        1)  echo '1'
        ;;
        2)  echo '2'
        ;;
        *)  echo '其他'
        ;;
    esac
    

    引入其他shell

    #file1
    #!/bin/bash
    a='a'
    
    #file2
    #!/bin/bash
    source file1.sh     # . file1.sh      (2种写法)
    echo $a
    #注意:file1不需要可执行权限
    

    相关文章

      网友评论

          本文标题:NDK - shell 脚本基础

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