bash编程语法总结,顺序,循环,选择

bash编程语法linux

    首先,咱们先说下bash语法都有哪些内容,随后我会随后一一去分析,增强我记忆的同时也分享下给家。编程


     linux bash脚本的基本内容构架以下数组


#!/bin/bash   -----> 每一个bash脚本第一行必需要写的,告诉系统这是个bash脚本。    bash

#              -----> #为注释的标志符号,#开头的行都是脚本不执行的,仅用做注释  编程语言

    命令段     -----> 脚本要执行的具体命令,来完成相应的功能
ide


bash编程为过程式编程语言,有3种主要语句即为:函数


顺序执行语句:最简单的,至上而下执行语句,工做模式为:测试

                #!/bin/bash
spa

                #(无关紧要)
3d

                    语句1

                    语句2

              先执行语句1,再执行语句2,例如:

    建立脚本 bash1.sh

    wKiom1Pdu7HycSvmAAAUT6yyAQ4129.png

    输出结果为:hello !

            hao are you

    


循环执行语句:有3种,for循环,while循环,until循环

基本结构以下:()内的内容就是变量要依次读出的内容,并要放到循环体中去执行的

            for 变量 in (列表); do

                循环体

            done

        循环体中的变量依次从列表中读取数据,知道列表中的数据读取完为止,例如:

    咱们求 1到100之间的全部整数的和为例,

    建立脚本 bash2.sh  (for循环)

        wKiom1PdvZjCjGtYAAAZEZHMAE4718.png  

        

        图中,i为变量(bash编程中,变量无需提早定义),对变量取值要用$,如对i取值:$i

 可是,咱们对于图中的sun变量为何要定义且赋予值0呢?,由于咱们要作累加运算,必须有个初值,好比你要算帐的话,必须知道算帐以前的帐单状态,才能得出结果啊,也就是数据的初始化。

        {1..100}表示,1到100的全部整数1,2,3........99,100

        输出结果为5050,你能够本身验证下

  

    while循环样例

        while [条件测试]; do

            循环体

        done

        wKioL1PdxKvwNPytAAAaZium7Jk022.png 

        上图中,counter=1,为条件测试的变量counter的初始值,

                let counter++ , 为循环体每执行一次,变量counter就自动+1,直到不知足测试条件为止,本题中,变量counter直到大于100,不知足测试条件,循环结束,输出最后结果为5050   



    until循环:基本格式:

        until [条件测试]; do  #until的测试条件,为真跳出循环,为假则执行语句(看清楚)

                循环体

        done

   咱们依然以1+2+3+.....+99+100为例:

    wKiom1Pdxq3w3YTFAAAWtzDCdf0888.png

    看到图中的测试条件了没有,while循环时,判断为 -ge 意思 小于等于,

                            until循环时,判断为 -gt 意思 大于,相反,这个从单词意思上就能看的出来,是否是这样啊。    


这里咱们说到了比较符号,那就补充下吧,

bash编程中测试类型有:

整型测试:整数的比较

基本模式为: [ $变量1 -gt $变量2 ]

    -gt 大于  

    -lt 小于

    -ge 大于等于

    -le 小于等于

    -ne  等于

    -ne  不等于

字符测试:(分为单目和双目)字符串的比较

    双目:  

        >

        <

        =

        >=

        <=

    单目:

        -n String: 是否不空,不空则为真,空则为假

-z String: 是否为空,空则为真,不空则为假

    


选择语句:简单比放下,你选择

        wKiom1PdvrqyRiD5AAANyAwhhIQ841.png

        从A开始,选择B,则执行1,选择C,则执行2

      选择语句通常有如下几种,

单分支if语句

        最基本的格式:

            if [条件测试];then    #里面的【条件测试】若是为真,则执行语句1,为假执行语句2

                语句1

            fi

            case

        咱们来看下选择语句的样题:

        假如:若是咱们输入一个整数数a,若是此整数a为偶数,则输出A,其余则退出

        wKiom1PdypDgzEy7AAAUP0A_ev8320.png

        若是输入2,则输出 A,输入3,则退出脚本,不显示内容        

        上图中,让用户输入一个内容,的语句格式为: read  -p  提示内容  变量

        来判断一个数是否为偶数,咱们用取余运算,可是发现了没有,$[$num%2],我在$num%2的前面又加了一个$,意思为,取运算完成后的数值与0进行比较,不加就会出现错误的哦

        

双分支if语句,

            基本格式为:

                if [条件测试];then

                    语句1

                else

                    语句2

                fi

        条件测试知足即为真时,执行语句1,不然执行语句2

        样例:若是咱们输入一个整数数a,若是此整数a为偶数,则输出A,不然输出B

            wKioL1PdzWWBxr7qAAAVBwUTBH8649.png

            上图中,若是你输入的为2,则输出A,输入的为3,则输出B,你能够本身试下,

        还有个多分支if语句:

            格式为:

            if [测试条件1]; then

                    语句1

            elif [测试条件2]; then

                    语句2

            elif [测试条件3]; then

                    语句3

                    ......

                    ......

            else

                    语句4

            fi

            意思为,符合测试条件1,执行语句1,符合测试条件2,执行语句2,依次类推。

        例如,咱们输入一个数,若是输入1,显示A;输入2,显示B;输入3,显示C;输入4,显示D;输入其余内容,则直接退出,而且显示内容,请输入(1|2|3|4),wKiom1PdzkbhskjXAAAisxSRhSU556.png

  最后还有个case语句,也输入选择语句的一种:

    格式以下: 

    case 变量  in

     条件1)

            语句1

            ;;

     条件2)

            语句2

            ;;

     条件3)

            ...

            ;;

     esac

    举个例子吧,就用case语法写一下上题那个if选择语句,

    wKiom1Pd1E2CS5onAAAgo2g87hA690.png

    结果和if选择样题是同样的,我测试过啦,才发出来的


bash中主要用到的基本内容就如上啦,其中有些,例如逻辑运算,变量的命名以及规则等,没有作详细介绍,有须要的能够问下,学而时习之,不辞下问都懂得。


函数的使用

    函数的通常语法
    function 函数名(){

            函数体

    }

    可使用函数名进行函数的调用如:

    

#!/bin/bash

#

NO1() {

        if [ $1 -eq 1 ]; then

                echo "A"

        fi

}

NO2() {

        if [ $1 -eq 2 ]; then

                echo "B"

        fi

        return 0

}


NO3() {

        if [ $1 -eq 3 ]; then

                echo "C"

        fi

        return 0

}



NO4() {

        if [ $1 -ge 4 ]; then

                echo "please input (1|2|3)"

        fi

        return 1

}


read -p  "please input (1|2|3)" num

        NO1 $num   

        NO2 $num

        NO3 $num

        NO4 $num

上例用了很简单的程序写的。,虽然简单,但基本说明了函数在bash编程中基本使用方式。

函数名 参数:意思为把参数传递给对应的函数,

函数中变量$1:表示接受传递参数的变量

return 0  : 这个表示函数的返回值,每一个函数调用执行完成后都会有个返回值的,固然能够本身指定。返回值


bash编程中的数组:
    数组是由   数组名+索引构成(索引指向的是数组中的元素)

    数组的声明命令为:decalare -a 数组名


    数组的赋值:

        总体赋值

                num=(1 2 3 4 5 6 7 8 9)

        单个赋值

                num[0]=1

                num[1]=2

                ...

                num[8]=9

        索引赋值

                num=([0]=a [1]=b [2]=c [3]=d)

     提示用户对数组进行赋值的语句:

            read -a “提示语句” 数组名     ##看清,使用的是-a , 而非-p


    遍历数组中的元素

            declare -a num

            num=(‘ls’)          #这里引用ls命令获取的结果赋值给数组num

            for i in $[$num[@]]; do 

                echo $num        输出数组的全部元素

            done

    数组的长度格式:

                ${#ARRAY[*]}

${#ARRAY[@]}

        wKiom1PeGFHCMql_AAALVQqmV10383.png


    从数组中挑选出某个元素的基本格式以下:

                ${ARRAY[@]:offset:number}

切片:

offset: 偏移的元素个数

number: 取出的元素的个数


${ARRAY[@]:offset}:取出偏移量后的全部元素


${ARRAY[@]}: 取出全部元素

            wKiom1PeGCSQzYGQAAATQ6iUaNk141.png


           数组的实际运用样例:  生成10个随机数到一个数组中,并排序,

            

#!/bin/bash

declare -a sum

for i in {1..10}; do

        sum[$i]=$RANDOM

done

echo ${sum[@]}


for ((i=0;i<9;i++)); do

        for ((j=1;j<$[10-$i];j++)); do

                if [ ${sum[$j]} -gt ${sum[$[$j+1]]} ]; then

                        var=${sum[$j]}

                        sum[$j]=${sum[$[$j+1]]}

                        sum[$[$j+1]]=$var

                fi

        done

done

        echo ${sum[@]}  

其中用到了生成随机数的命令:

        $RANDOM

相关文章
相关标签/搜索