实战Linux shell编程与服务器管理

第八章 算数运算

8.1 简介

(1)求值时,若算数式变量不存在或空值,该变量为0

(2)数字以0开头,视为八进制数,0X开头为十六进制;不同进制的数可以使用“基底#数字”表示

(3)运算符有优先级,初单算关逻条赋逗

8.2 扩展

(1)算数扩展:$( (表达式) ),表达式中可含有变量扩展

8.3 使用外部程序expr做算术运算

(1)语法:expr 表达式,将表达式结果在屏幕上输出

(2)expr范例(使用expr要对表达式中出现bash shell特殊字符进行转义,\)

      r=’expr  参数1\|参数2‘ ,如果参数1存在非空且不为0则传回参数1,否则为参数2

      r='expr 参数1\&参数2’,如果参数1与参数2皆存在,非空且不为0,则传回参数1的值,否则传回0

      参数1与参数2比较,例如r='expr 参数1\<参数2’,成立则传回1

     加,减,乘(需加转义符),除,求余,递增,对比,找出子字符串位置,取子字符串,计算字符串长度,视关键词为一般字符串(具体语法见书籍)

8.4 使用$[]做算术运算

    语法:r=$[表达式]

8.5 使用delcare,let做算术运算

(1)dalcare 例子(注意,不需转义,也不需在变量前加$)

     delcare -i  a   //将a声明为整型

     a=2+3

(2)let(注意同delcare)

   let a=2+3,let b=a+2

第九章 流程控制

选择:if,case  循环:for,while,until

select既属于选择也属于循环

9.1 命令的结束状态

(1)命令执行结束传回状态值,命令执行成功,传回0(真值),失败为非零值(假值)

(2)bash内置变量: $?

9.2 if条件判断

(1)简单的if语法

 if-then;if-then-else

(2)if的完整语法

if-then-elif-then-else

( (a>b) )与let “a>b"两者的应用

9.3 条件测试的写法

(1)执行某一个命令的结果

(2)!传回某个命令执行结果相反值

(3)使用复合命令:算式,算式结果非0,传回真值0,结果为0,传回假值1

(4)使用bash关键词’ [[ '与' ]] '组成的式子: [[ 判断式 ]],判断式为真,传回真值0

(5)使用内置命令:test判断式,判断式为真,传回真值0

(6)使用内置命令:[ ],形式如[判断式],同test相同

(7)使用-a(且),-o(或)进行逻辑组合

(8)&&(命令1&&命令2,命令1为真则执行命令2)

            ||(命令1||命令2,命令1为假则执行命令2)

            &&与||合用可以起到if-then-else的效果

注:

(1)条件测试方法中只有[[ ]]可以不受特殊字符的影响,不用转衣符,同(( ))

(2)[[判断式]]中,若果使用==或者!=,字符若没有引号,表示比较样式,加上引号才表示比较二者是否相等

9.4 条件判断式的真假值

(1)“单元”以及“二元”条件判断式

 (2)关于文件属性的判断式(-a,-b......)

(3)关于字符串的条件判断式(-z,-n,==,=,!=,<,>)

(4)对比字符串时,最好将两个字符串都打上双引号,避免变量内容为空时造成语法错误

(5)关于算式的条件判断式(-eq,-ne......)

9.5 case条件判断

(1)case的语法结构

(2)高级样式(?,*,+,@,!)

9.6 for循环

(1)for的语法结构(串行是一些字符串的组合,彼此用$IFS所定义的分隔字符,如空格符隔开)

      for 变量 in串行

      do

          命令区域

      done

(2)for另外的用法(类似于C语言)

   for( (初始条件;终止条件;异动项) )

   do

     命令区域

   done

(3)for无穷循环

9.7 while循环

(1)while语法

(2)while无穷循环

9.8 Until循环

(1)until语法

(2)until无穷循环

9.9 select命令

(1)select语法(select会给串行各个选项编号,从1开始递增)

    select 选项变量 in 串行

     do

         命令区域

     done

9.10 break和continue语句

(1)break命令

    跳出多层循环,break n

(2)continue命令

  continue n

9.11 综合运用实例

第十章 函数

10.1 函数的用法

(1)函数(function)的三种语法

(2)函数的结束状态(函数最后一个命令的传回值代表函数结束状态)

10.2 函数与变量的作用范围

(1)函数的作用范围

    当前shell内有效,export -f 函数名称 传递给子shell

(2)变量的作用范围

    在shell中定义的变量在函数中依然有效,在函数中定义local变量

10.3 位置参数

(1)传递参数: 函数名称 参数1 参数2.....当函数借用命令行的位置参数时,原位置参数会被暂时保存起来

(2)命令行的位置参数

(3)移动位置参数 shift

(4)指定位置参数值 set(原位置参数消失)

(5)取用命令行的选项和参数

      语法:getopts 选项行 选项变量(使用方法见实例)

10.4 建立函数库

  (1)函数库的建立

  (2)函数库的调用方法

       . 路径\函数库文件名或 source  路径\函数库文件名

10.5 递归函数

10.6 实例应用

         学习掌握综合实例

第十一章   转向

11.1 文件代码

(1)转向输入,转向输出,转向附加

11.2 操作文件

   开启文件、复制文件代码和关闭文件
(1)开启文件
 语法:fd<>  文件 ,开启文件,指定文件代码fd,例子 exec 6<>test.txt(exec执行转向,开启文件)
(2)关闭文件
 语法:fd<&-
 例子:关闭转向输入文件 exec 6<&-
           关闭转向输出文件 exec 6>&-
(3)复制文件代码,建立文件连接
  语法:n<&m 复制转向输入的文件代码m,存为n
            n>&m 复制转向输出的文件代码m

   用例  exec 1>&6(可省略1),将标准输出连接到文件代码6
           cat 0<&6(可省略0),将文件代码6的内容连接到标准输入,并由cat显示出来
           exec 5<&0(备份标准输入),exec 0<&5 5<&-(还原标准输入,删除文件5)
   几个实例

11.3 转向的用法

(1)转向输入  fd<文件
 用例:wc -l  </error.log
转向输入后,标准输入与error.log文件建立连接,wc改由error.log读取行数
 (2)转向输出 fd>文件
注:fd>|文件,强制覆盖文件内容
 (3)转向附加
      fd>>文件
(4)标准错误伴随标准输出做转向
    &>文件(命令产生的错误信息输出到文件中)
(5)Here Document转向
语法:fd<<标记
           资料
           .....
           标记

第十二章 trap陷阱触发


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值