linux三剑客---shell脚本:bash
1,什么是shell脚本?
vi 1.sh, 写入内容
给1.sh添加执行权限: 运行脚本(相对路径,绝对路径,bash , source )
2, 管道| 重定向 >
3,shell 脚本变量
A: 系统变量:date, env
B: 自定义变量
C: 位置变量:$1,$2....
vi 4.sh 输入内容:
执行脚本:
D: 预定义变量:$0 ,$*, [email protected], $# $?
脚本变量的输出:单引号' ' , 双引号 " ", $( ) 、撇号`expr 表达式`
读取输入的数据:简单加法运算
vi 5.sh ,输入内容:
变量的作用域:export使得变量全局化
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 , !
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
vi 2.sh: 输入内容
6, shell循环语句: for, while
ubuntu默认dash和bash语法差异(let关键字, ++ , echo -e)
while死循环:exit 0
两层for循环: 打印99乘法表: break当前次数循环
两层while循环: 打印99乘法表
7, shell: 函数--声明和调用