1. shell
以.sh后缀的文件夹
使用vim编辑
第一句恒定是#!bin/bash
linux语句
获取.sh文件权限
./文件名.sh 运行
bash 文件名.sh 运行2
2. 变量
普通变量
- 变量名=变量值 必须为一个整体,中间没有特殊字符
- 变量名=’变量值’ 单引号中的内容原样赋值
- 变量名=”变量值” 如果双引号里面有其他变量,那么会进行拼接后,再赋值
命令变量 把命令执行的结果赋值给变量
- 变量名=
命令注意为反引号 - 变量名=$(命令)
- 变量名=
使用变量
- $变量名
- “$变量名”
- ${变量名}
- “${变量名}” 标准用法
只读变量
- readonly 变量名 常量
删除变量
- unset 变量名 删除变量
3. 数组
定义数组
- 数组名=(值 值2…) arr=(1 2 3 4 5)
使用索引赋值
- 数组名[索引]=值 arr[0]=2
获取元素
- ${数组名[下标]} ${arr[0]}
获取长度
- ${#数组名[]} ${#arr[]}
- ${#数组名[@]} ${#arr[@]}
4. 运算符

需要在运算的数字 前加上关键字 expr
4.1. 字符串运算符

字符串长度: “${#a}”
4.2. 关系运算符

4.3. 布尔运算符


4.4. $?
$? 可以获取sh脚本上一条命令执行的结果,减少赋值和创建变量
5. 判断语句
if[条件]then语句体fiif[条件]then语句体else语句体fiif[条件]then语句体elif[条件2]语句体else语句体fi
5.1. 选择语句
case 值 in模式1)语句体;;模式2)语句体;;esacv = "test"case "${v}" in"123")echo "123";;"test")echo "test";;esac
6. 循环语句
for 变量 in 范围do循环体done
while 条件do循环体done
7. 函数
函数名(){函数体}function(){echo "function"}# 直接用函数名调用函数function
fa(){echo "$1"echo "$2"# 返回值直接返回就好return $(($1+$2))}fa 10 20echo $?
8. 键盘录入
read 变量名
