第二课 shell脚本

2017-01-16  本文已影响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脚本是一个动态决定数据类型的语言

*变量的使用

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
上一篇 下一篇

猜你喜欢

热点阅读