Linux学习-day2-shell编程

1. rpm

 

2. shell中的变量

    1)echo:显示  系统变量:$HOME $PWD $SHELL $USER

    2)显示当前shell中所有变量:set

    3)定义变量:

        1)定义变量:变量=值

        2)撤销变量:unset变量

        3)声明静态标量 readonly 变量名

    4)变量定义规则:

        1)变量名称可以由字母,数字和下划线组成,但是不能以数字开头

        2)等号两侧不能有空格

        3)变量名称一般习惯为答谢

        4)双引号和单引号有区别,双引号仅将空格脱意,单引号会将所有特殊字符脱意

        5)将命令的返回值赋给变量 A=‘ls-la'反引号,运行里面的命令,并把结果返回变量A

                A=$(ls-la)等价于反引号

    5)环境变量设置:

       1)基本语法:

       export 变量名=变量值       (功能描述:设置环境变量的值)

       echo $变量名              (功能描述:查询环境变量的值)

       source 配置文件            (功能描述:让修改后的配置信息立即生效)

       2)案例:

       在/etc/profile文件中定义JAVA_HOME环境变量

       export JAVA_HOME=/opt/module/jdk1.7.0_79

       export PATH=$PATH:$JAVA_HOME/bin

       3)查看环境变量:echo $JAVA_HOME

    

    6)运算符

    1)基本语法:

        (1)“$((运算式))”或“$[运算式]”

        (2)expr m + n

        注意expr运算符间要有空格

    2)案例:计算(2+3)X4的值

       (1)采用$[运算式]方式

          [root@hadoop102 datas]# S=$[(2+3)*4]

          [root@hadoop102 datas]# echo $S

       (2)expr分布计算

              S=`expr 2 + 3`

              expr $S \* 4

       (3)expr一步完成计算

              expr `expr 2 + 3` \* 4

              echo `expr \`expr 2 + 3\`\*4`

    7)条件判断

        1)基本语法:
            [ condition ](注意condition前后要有空格)
            #非空返回true,可使用$?验证(0为true,>1为false)
        2)案例:
            [atguigu] 返回true
            [] 返回false
        [condition] && echo OK || echo notok 条件满足,执行后面的语句

    8)流程控制

        1)if判定:

        基本语法:
            if [ 条件判断式 ];then 
                程序 
            fi 
            或者 
            if [ 条件判断式 ] 
            then 
                程序 
            fi
            注意事项:(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格

            #!/bin/bash
            read –p “please input your name:” NAME
            #printf ‘%s\n’ $NAME
            if[ $NAME = root ]
                then 
            echo “hello ${NAME}, welcome !”
            elif [ $NAME = atguigu]
                then
            echo “hello ${NAME}, welcome !”
            else
            echo “sorry ”
            fi

 


        2)case判定:

        1)基本语法:
            case $变量名 in 
            "值1") 
                如果变量的值等于值1,则执行程序1 
            ;; 
            "值2") 
                如果变量的值等于值2,则执行程序2 
            ;; 
            …省略其他分支… 
            *) 
                如果变量的值都不是以上的值,则执行此程序 
            ;; 
            esac

        2)案例:

            case $1 in

            "1")

                echo "1"

            ;;

            "2")

                echo "2"

            ;;

            *)

                echo "no"

            ;;

            esac

    9)for循环

            1)基本语法1:
                for 变量 in 值1 值2 值3… 
                do 
                    程序 
                done

            2) 案列:

                #!/bin/bash

                for i in "$*"
                do
                    echo "$i"
                done

                for j in "$@"
                do
                    echo "$j"
                done

                

            results:

                

                                                 1)基本语法2:

                for (( 初始值;循环控制条件;变量变化 )) 
                do 
                    程序 
                done

            2)案列:

                #!/bin/bash 
                #从1加到50

                s=0 
                for (( i=1;i<=50;i=i+1 )) 
                do 
                    s=$(( $s+$i )) 
                done 
                    echo "The sum is : $s"

    10)while循环

            1)基本语法:
            while [ 条件判断式 ] 
            do 
                程序 
            done

    11)read函数(读取控制台输入)

        1)基本语法:
        read(选项)(参数)
        选项:
            -p:指定读取值时的提示符;
            -t:指定读取值时等待的时间(秒)。
        参数 
            变量:指定读取值的变量名

         2)案列:

        

    12)系统函数

        1)basename:删除所有前缀,将绝对路径转换为相对路径

        2)dirname:将文件名称删掉,只剩下绝对路径

    13)自定义函数

        1)基本语法:调用函数之前必须先声明,shell是逐行运行的;函数返回值,只能通过$?系统变量获得,可以加return返回,如果不加,默认以最后作为返回值

            [ function ] funname[()]
            {
                Action;
                [return int;]
            }

            function start() / function start / start()

        2)计算输出参数的和:

            function sum()
            #!/bin/bash
            function sum(){
                s=0
                s=$[$1+$2]
                echo "$s"
            }

            read -p "Enter number1:" n1;
            read -p "Enter number2:" n2;
            sum $n1 $n2;

猜你喜欢

转载自blog.csdn.net/canglan211/article/details/80801697