美文网首页
第二课 shell脚本

第二课 shell脚本

作者: 我本无邪 | 来源:发表于2017-01-16 16:48 被阅读0次

    shell脚本:是一个很多shell命令组成的一个文件
    一:�常量
    数字常量 字符常量 字符串常量
    二:shell的入门

      1 echo "hello word"
        *echo就是输出命令
      2程序执行方式
              chmod +x 1.sh//增加执行的权限
              ./1.sh 运行脚本文件
            注意点:尽量使用第一种,不要使用第二种
             
         -rw-r--r--
       第一个字符如果是-:代表这是一个普通文件纯文本的
      
           echo的深度用法
                      echo
          可以加上 “”。尅一不加‘’
          echo式自动换行的
          echo -e  开启转义,对特殊的字符进行转义    
    

    二进 制的

          d:代表目录文件
          r:带白哦可读
         w:代表可写
         x:代表可写
         rw-:代表文件宿主用户的操作权限
         r--:代表与宿主用户同组的其他用户权限
         r--:代表其他用户
    

    chmod +(-)x 1.sh给所有的用户加上可执行权限或减去权限

        u:user,owner                  g:group
      chmod 7771.sh
    

    标示符的命名规范

          只能有字母,数字或下划线组成
          不能以数字开头
          不能与shell脚本的关键字相同
    

    建议规范

          不准用拼音代替,多查字典
           尽量使用驼峰命名法numOfStident
          见名之意
    

    变量的定义

     不需要制定变量的数据类型
     左边是变量名,右边死变量存储的值
     =左右两边不能有空格
         注意:如果这个变量没有定义,就直接使用,那么久默认这个变量为空格
    
    • shell脚本的语法规范
          每一行写完不需要分号
          上面语法的错误不会影响下面代码的执行
          shell脚本是一个动态决定数据类型的语言
    

    *变量的使用

    a 不加$时候的情况
          1、在变量的定义和变量的赋值不需使用
          2、在变量删除的时候
          3、在与let关键字连用的时候
    b变量+{}
          为了分清界限
           ‘’:不能转义取值
           不加:不能很好的分清是变量爱是值
          “”:可以避免上述问题
    

    转义字符

      \c代表不换行
      \t相当于tab按键
        (1)如果采用./1.sh运行方式,需要开启echo -e
        (2)如果采用sh 1.sh运行方式,不需要开启转义
                  例如:echo "xxx\t===="
    

    字符串的处理方式

          1>计算字符串的长度
              
                       1string="hello"
                       2length=${#string}
                       3echo "${length}"
         2>拼接字符串
                      
    
                          1string="hello"
                          2string1="world"
                          3string2="$string $string1"
                          4echo ${string}
     
          3>截取字符串
             
    
                    1string="hello world"
                    2string1=${string:6:5}
                    3echo "${string2}"
      *printf的用法
           简单案例
    
      1num=1
      2string="hello"
      3printf "${num},${string}\n"
      4pr intf"num=%d,string=%s\n"${num} ${string}
      5ch="c"
      6num2=12.3
    

    *printf"ch=%c,num2=%f\n"${ch} ${num2}
    分析

      %d:代表打印的数值是一个整数
      %S:代表打印的数值是一个字符串
      %c:代表打印的数值是一个字符
    

    %f:代表打印的数值算是一个小数

    %m.nf代表是 左对齐

     m只是控制打印的宽度
    %md:     %mc:    %ms:
          注意点:
                      所有的数据类型都可以看成字符串去打印
                      字符串不能用整数,小数,字符型去打印
    

    *只读变量readonly

       3readonly value=1
        4value=2     #这一行会出错,因为这个变量已经用readonly 进行修饰,说明这个变量将来只读,不可写.
                     注意  只读变量不可删除
    

    算数运算符(整数)
    + - * / %
    取结果集

    ``      $()
        注意点:如果是*必须用\*,告诉编译器这是乘.计算机只能计            算相同类型的数据,其结果一定与类型相同
    
    let关键字
    
    前缀++,__....
    

    关系运算符

    \>      \<     \>=    \<=
    需要加\进行转义
    

    if 条件分支

     1> 
     if[条件]'
     then
      输出的信息
     fi
    

    2>

        if[条件]
        then
       输出的信息
       else
      输出的信息
       fi
    

    3>

     if[条件]
      then
              输出的信息
      elif[条件]
      then
       输出的信息
      ......
      elif[条件]
      then
            输出的信息
      else
            输出的信息
      fi
    

    注意: 1>else可有可无
    2>如果有else,必须放在最下面
    3>别忘了加标识符

      -gt:大于                                   -lt:小于
      -ge:大于等于                          -le:小于等于
       -eq:等于                                  -ne:不等于
    

    字符串运算符

       =      !=      -z
    
    
      -z $str判断字符串是否为空
      $str 判断字符串是否不为空  
          例如
          1string="hello'
          2string1=""hello
          3string=""
          4if [ -z$string2 ]
          5then
          6  echo"不存在"
          7else
          8echo"存在"
          9fi
    

    文件运算符

       -e 文件路径:判断文件是否存在
      -d 文件路径:判断文件是否是目录.directory
      -f 文件路径:判断文件路径是否是普通文件,file
      -r.........可读
      -w.......可写
      -x.........执行
    

    例如

      1if [ -e ~/xxx]
      2then
      3  e  cho"存
      4else
      5    mkdrv~/xxx
      6    echo "创建成功"
      7fi

    相关文章

      网友评论

          本文标题: 第二课 shell脚本

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