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
语句体
fi
if[条件]
then
语句体
else
语句体
fi
if[条件]
then
语句体
elif[条件2]
语句体
else
语句体
fi
5.1. 选择语句
case 值 in
模式1)
语句体
;;
模式2)
语句体
;;
esac
v = "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 20
echo $?
8. 键盘录入
read 变量名