一、运行shell脚本的两种方法
1、作为可执行程序 2、作为解释器参数
二、shell变量和数据类型
1、变量 变量和等号之间不能有空格,变量名外面的花括号是可选的,加花括号是为了帮助解释器识别变量的边界
使用变量 在变量前加$符号 只读变量 readonly 删除变量 unset
2、变量类型 存在三种变量:局部变量, 环境变量,shell变量
数据类型: 1、字符串 'hello' 单引号/双引号
2、数组 定义:array=(v1 v2 v3)
1)读取元素: ${array[下标]} 2)@ 符号可以获取数组中的所有元素${array_name[@]}
3)数组元素个数:${#array_name[@]}或${#array_name[*]} 4)单个元素的长度 ${#array_name[n]}
3、shell的注释 以 # 开头的行就是注释,会被解释器忽略,多行注释使用<<EOF 或 <<', <<!
三、shell的传递参数
$* 与 $@ 区别:
相同点:都是引用所有参数。
不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。
Shell——return 命令作用
1、终止一个函数.
2、return命令允许带一个整型参数, 这个整数将作为函数的"退出状态码"返回给调用这个函数的脚本, 并且这个整数也被赋 值给变量$?.
3、命令格式:return value
return终止函数后可以输入echo $? 来显示上一个函数的执行状态
函数返回值在调用该函数后通过 $? 来获得
四、shell的运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
注意: 表达式和运算符之间要有空格,变量,等号,表达式之间不要有空格,完整的表达式要被 ` ` 包含。
算术运算符 ,关系运算符,布尔运算符,字符串运算符,文件测试运算符
注意:
条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]。
五、shell中echo, printf, test命令
六、shell的流程控制
1、if else
2、for循环
3、while语句
4、until循环
5、case语句
6、continue和break语句
七、shell函数
1、函数的定义 可以带function fun()定义,也可以直接fun()定义,不带任何参数。可以加return返回,
如果不加,将以最后一 条命令运行结果,作为返回值。
2、函数的参数 函数体内部,通过 $n 的形式来获取参数的值
八、输入输出重定向
> < >> <<
九、文件包含
使用 . 文件名 或者 source 文件名
参考: https://www.runoob.com/linux/linux-shell.html
https://blog.csdn.net/asty9000/article/details/89000355