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. 运算符

02. shell - 图1

需要在运算的数字 前加上关键字 expr

4.1. 字符串运算符

02. shell - 图2

字符串长度: “${#a}”

4.2. 关系运算符

02. shell - 图3

4.3. 布尔运算符

02. shell - 图4

02. shell - 图5

4.4. $?

$? 可以获取sh脚本上一条命令执行的结果,减少赋值和创建变量

5. 判断语句

  1. if[条件]
  2. then
  3. 语句体
  4. fi
  5. if[条件]
  6. then
  7. 语句体
  8. else
  9. 语句体
  10. fi
  11. if[条件]
  12. then
  13. 语句体
  14. elif[条件2]
  15. 语句体
  16. else
  17. 语句体
  18. fi

5.1. 选择语句

  1. case in
  2. 模式1)
  3. 语句体
  4. ;;
  5. 模式2)
  6. 语句体
  7. ;;
  8. esac
  9. v = "test"
  10. case "${v}" in
  11. "123")
  12. echo "123"
  13. ;;
  14. "test")
  15. echo "test"
  16. ;;
  17. esac

6. 循环语句

  1. for 变量 in 范围
  2. do
  3. 循环体
  4. done
  1. while 条件
  2. do
  3. 循环体
  4. done

7. 函数

  1. 函数名(){
  2. 函数体
  3. }
  4. function(){
  5. echo "function"
  6. }
  7. # 直接用函数名调用函数
  8. function
  1. fa(){
  2. echo "$1"
  3. echo "$2"
  4. # 返回值直接返回就好
  5. return $(($1+$2))
  6. }
  7. fa 10 20
  8. echo $?

8. 键盘录入

read 变量名