shell脚本编写之初级版-创新互联

1. &

珠山ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!nbsp;shell脚本的执行顺序是从上而下的,面向过程。
2.  文件名称格式: xxx.sh
3.  文件内容的第一行: #!/bin/bash
4.  shell脚本就是将命令全部融合在一起
5.  定义变量
    shell脚本的变量是以:key=value 定义的,注意:=两边不能有空格
    静态变量定义:a='www.ruozedata.com'
    动态变量定义:b=`date`    #变量b是获取当前时间,调用b的时候动态获取当前时间
    shell脚本里面使用变量的方法:${变量} ,如使用变量a就应该是${a}。
6.  if判断
    可以判断:整数、小数 、字符串、文件夹是否存在、文件是否存在 等。
    格式: if [空格 xx = yy 空格]   注意:使用单个等号,表达式前后及等号两边各有一个空格。
   示例:
          if [ '$a' = 'www.ruozedata.com' ]; then
              echo "D3"
            fi
7.  shell中for循环的几个常用写法
    第一类:数字性循环
        例1:
                #!/bin/bash
                for((i=1;i<=10;i++));
                do
                    echo $(expr $i \* 3 + 1);
                done
        例2:
                #!/bin/bash
                for i in $(seq 1 10)
                do
                    echo $(expr $i \* 3 + 1);
                done
        例3:
                #!/bin/bash
                for i in {1..10}
                do
                    echo $(expr $i \* 3 + 1);
                done
        例4:
                #!/bin/bash
                awk 'BEGIN{for(i=1; i<=10; i++) print i}'
    第二类:字符性循环
        例1:
                #!/bin/bash
                for i in `ls`;
                do
                    echo $i is file name\! ;
                done
        例2:
                #!/bin/bash
                for i in $* ;
                do
                    echo $i is input chart\! ;
                done

        例3:
                #!/bin/bash
                for i in f1 f2 f3 ;
                do
                    echo $i is appoint ;
                done
        例4:
                #!/bin/bash
                list="rootfs usr data data2"
                for i in $list;
                do
                    echo $i is appoint ;
                done
    第三类:路径查找
        例1:
                #!/bin/bash
                for file in /proc/*;
                do
                    echo $file is file path \! ;
                done

        例2:
                #!/bin/bash
                for file in $(ls *.sh)
                do
                    echo $file is file path \! ;
                done
8.  分割
      shell中字符串分割的三种方法:
        例1:分割字符串’1,2,3,4,5’,以“,”分割
            #!/bin/bash
            var=’1,2,3,4,5’
            var=${var//,/ }    #这里是将var中的,替换为空格
            for element in $var
            do
                echo $element
            done
        例2:分割字符串’mark:x:0:0:this is a test user:/var/mark:nologin’,以“:”分割
            #!/bin/bash
            user=’mark:x:0:0:this is a test user:/var/mark:nologin’
            for((i=1;i<=7;i++))
            do
                    echo $user|cut -d ":" -f$i
            done
        例3:针对例2写的一种通用的脚本(也使用例1)
            #!/bin/bash
            user=’mark:x:0:0:this is a test user:/var/mark:nologin’
            i=1
            while((1==1))
            do
                    split=`echo $user|cut -d ":" -f$i`
                    if [ "$split" != "" ]
                    then
                            ((i++))
                            echo $split
                    else
                            break
                    fi
            done
9.  赋权限和执行
    给shell脚本赋可执行权限: chmod +x xxx.sh
    执行shell脚本的命令:./xxx.sh
              sh  xxx.sh
10. debug模式
    在开发中,经常要是用debug模式来排查问题。
    现在有两种开启debug模式的方法:
    1. 在shell脚本的#!/bin/bash  后面加上 -x:   #!/bin/bash -x
       #编辑 20180525.sh文件  添加 -x参数后保存退出
        [hadoop@hadoop002 ~]$ vi 20180525.sh
        #!/bin/bash -x
        a='www.ruozedata.com'
        b=`date`
        echo $a
        echo ${a}${b}c/d
       #执行20180525.sh  脚本
        [hadoop@hadoop002 ~]$ ./20180525.sh
        + a=www.ruozedata.com
        ++ date
        + b='Fri May 25 14:29:54 CST 2018'
        + echo www.ruozedata.com
        www.ruozedata.com
        + echo www.ruozedata.comFri May 25 14:29:54 CST 2018c/d
        www.ruozedata.comFri May 25 14:29:54 CST 2018c/d
        [hadoop@hadoop002 ~]$

分享文章:shell脚本编写之初级版-创新互联
分享路径:http://azwzsj.com/article/doppii.html