linux三剑客---shell脚本:bash

1,什么是shell脚本?

vi  1.sh,    写入内容

给1.sh添加执行权限: 运行脚本(相对路径,绝对路径,bash , source )

linux三剑客---shell脚本:bash_第1张图片

2, 管道|      重定向 >

linux三剑客---shell脚本:bash_第2张图片

3,shell 脚本变量

A:     系统变量:date, env

linux三剑客---shell脚本:bash_第3张图片

B:    自定义变量

C:     位置变量:$1,$2....

vi 4.sh   输入内容:

linux三剑客---shell脚本:bash_第4张图片

执行脚本:

linux三剑客---shell脚本:bash_第5张图片

D:    预定义变量:$0 ,$*, $@,            $#                  $?

linux三剑客---shell脚本:bash_第6张图片

脚本变量的输出:单引号' '  , 双引号 " ",    $( ) 、撇号`expr 表达式`

linux三剑客---shell脚本:bash_第7张图片

读取输入的数据:简单加法运算

vi 5.sh  ,输入内容:

变量的作用域:export使得变量全局化

linux三剑客---shell脚本:bash_第8张图片

 

4, shell条件运算符

 

判断:

  • 文件或目录:  -f file,      -d directory,    -s size(判断文件大小:非0-->true)

  • 读写权限 :     -r, -w ,-x

  • 数值大小:    -eq  ,   -ne,       -gt ,    -lt ,             -le, -ge

  • 字符串相等/空: =,==,!=       ,  -z  (zero: "" 或''  或变量未定义为ture)
  • 逻辑运算:&& 或 -a and ,      || 或 -o or  ,    !

linux三剑客---shell脚本:bash_第9张图片

 

5, shell条件表达式: if else , case

  • 单分支: if 条件;  结果1 ;  then 结果2;  fi

  • 多分支: if 条件; then  结果1;  else  结果2 ;  fi

  • 多分支:  if 条件1 ;then 结果1;  elif 条件2  then  结果2 ; elif  条件3 then 结果3 ; else 结果4 ;  fi
  • case .. in  条件1) 结果...;; 条件2) 结果....;; 条件3)结果....;;esac

linux三剑客---shell脚本:bash_第10张图片

vi 2.sh:  输入内容

linux三剑客---shell脚本:bash_第11张图片

linux三剑客---shell脚本:bash_第12张图片

 

6, shell循环语句:  for, while

ubuntu默认dash和bash语法差异(let关键字, ++ , echo -e)

linux三剑客---shell脚本:bash_第13张图片

linux三剑客---shell脚本:bash_第14张图片

linux三剑客---shell脚本:bash_第15张图片

linux三剑客---shell脚本:bash_第16张图片

while死循环:exit 0

linux三剑客---shell脚本:bash_第17张图片

两层for循环: 打印99乘法表: break当前次数循环

linux三剑客---shell脚本:bash_第18张图片

两层while循环: 打印99乘法表

linux三剑客---shell脚本:bash_第19张图片

linux三剑客---shell脚本:bash_第20张图片

7, shell:  函数--声明和调用

linux三剑客---shell脚本:bash_第21张图片

 

你可能感兴趣的:(linux,shell,bash,linux编程-shell)