Linux高级进阶3

  • day3(续)
    • 六、shell脚本
      • 3.功能语句
        • 3.1 说明性语句
          • 以#开头的是注释,起解释说明作用
        • 3.2 功能性语句
          • 3.2.1 read
            • 功能:read从标准输入读入一行,并且可以赋值给后面的变量
            • 格式: read 变量1 变量2 变量3
            • 把读入行中的第一个单词赋值给变量1,第二个单词赋值给变量2,以此类推。
            • 把剩余的所有单词赋值给最后一个变量。
            • read -p "提示语句" 变量列表:可以将提示语句输出,同时输入变量。
          • 3.2.2 expr
            • expr 表达式
            • 注意:表达式中符号间必须用空格,元素引用$
            • 可以直接输出结果,不过脚本里一般结合命令置换符把结果重新赋值给其他变量。
            • 算术运算符命令expr主要用于进行简单的整数运算,包括加(+)、减(-)、乘(\*)、整除(/)和取余数(%)等操作, 小括号前面也要加\。
            • 补充: 可以用双圆括号((表达式))进行运算,里面表达式和C语言写法一样。
          • 3.2.3 test
            • (1).字符串的测试
              • s1 = s2 测试两个字符串的内容是否完全一样
              • s1 != s2 测试两个字符串的内容是否有差异
              • -z s1 测试s1 字符串的长度是否为0
              • -n s1 测试s1 字符串的长度是否不为0
            • (2).整数的测试
              • a -eq b 测试a 与b 是否相等 equal
              • a -ne b 测试a 与b 是否不相等 not equal
              • a -gt b 测试a 是否大于b greater than
              • a -ge b 测试a 是否大于等于b greater equal
              • a -lt b 测试a 是否小于b litter than
              • a -le b 测试a 是否小于等于b litter equal
              • 补充操作符:
              • -o 或运算 例如 [ $a -lt 20 -o $b -gt 100 ] 返回 true
              • -a 与运算 例如 [ $a -lt 20 -a $b -gt 100 ] 返回 false
              • ! 非运算 例如 [ ! false ] 返回 true
              • && 逻辑与 例如 [[ $a -lt 100 && $b -gt 100 ]] 返回 false
              • || 逻辑或 例如 [[ $a -lt 100 || $b -gt 100 ]] 返回 true
              • | 位或 例如 echo $[2|2]
              • &位与 例如 echo $[2&1] 
            • (3).文件属性的测试
              • -d name 测试name 是否为一个目录
              • -f name 测试name 是否为普通文件
              • -e name 测试文件是否存在
        • 3.3 结构性语句
          • 3.3.1 if语句
            • 基本结构
              • if 条件 then     命令表1 else     命令表2 fi
            • 多路分支结构
              • if 条件1 then     命令表1 elif 条件2 then     命令表2 fi
            • 嵌套结构
              • if 条件1 then     if 条件2     then         命令表1     fi else     命令表2 fi
          • 3.3.2 case语句
            • case 变量 in 模式1)     命令表1     ;; 模式2)     命令表2     ;; *)     命令表3     ;; esac
          • 3.3.3 for循环
            • for 变量名 in 单词表 do     命令表 done
              • (1).for i in 1 2 3 4 do....done :     变量i从单词表中取值
              • (2).for i do...done:    变量i从命令行取值,可以省略in单词表
              • (3).for i in {1..10} do...done:    变量i从1-10个数中取值
              • (4).for ((i = 0; i < 10; i++)) do...done:  书写格式类似c语言
          • 3.3.4 while
            • while 命令或表达式 do     命令表 done
          • 3.3.5 循环控制语句
            • break n: 结束n层循环
            • continue n: 结束n层循环的本次循环,继续下一次循环
    • 七、数组
      • 1. 数组的赋值
        • (1)arr=(1 2 3 4 5)
        • (2)arr=($1 $2 $3 $4...)
        • (3)read a b c     arrr=($a $b $c)
        • (4)read -a arr
      • 2. 数组的调用
        • ${arr[i]} #引用数组元素,元素下标从0开始到n-1结束arr[i]=10 #对数组元素重新赋值
        • ${arr[@]} #遍历数组
        • ${#arr[@]} #数组元素个数
    • 八、函数
      • 1.函数定义方式
        • (1)函数名() {  命令表 } (2)function 函数名() {  命令表 }
      • 2.函数调用
        • 函数名 参数列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值