Linux 基础之 Shell 的数组、转义及引用、运算符、特殊字符、test 比较、if 判断、if-else 判断、嵌套 if 的使用、case 分支、for 循环、while 循环及 until

一、Shell 的数组、转义及引用、运算符、特殊字符、test 比较、if 判断、if-else 判断、嵌套 if 的使用、case 分支、for 循环、while 循环及 until 循环、循环的嵌套、break 及 continue 语句和使用循环处理位置参数
  1. 数组,如下所示:
  • 定义数组,如 IPTS=( 10.0.0.1 10.0.0.2 10.0.0.3)
  • 显示数组的所有元素,如 echo ${IPTS[@]}
  • 显示数组元素个数,如 echo ${#IPTS[@]}
  • 显示数组的第一个元素,如 echo ${IPTS[0]}
  1. 特殊字符,一个字符不仅有字面意义,还有元意,# 注释、; 分号、\ 转义符号、‘’ 引号。
  2. 转义符号,单个字符前的转义符号,\n \r \t 单个字母的转义、\$ \'' \\ 单个非字母的转义。
  3. 引用,常用的引用符号,“ 双引号、’ 单引号、` 反引号。
  4. 赋值运算符,如下所示:
  • = 赋值运算符,用于算数赋值和字符串赋值
  • 使用 unset 取消为变量的赋值
  • = 除了作为赋值运算符还可以作为测试操作符
  1. 算数运算符,如下所示:
  • 基本运算符,+ - * / ** %
  • 使用 expr 进行运算,expr 4 + 5
  1. 数字常量,使用方法,如下所示:
  • let ‘变量名 = 变量值’
  • 变量值使用 0 开头为八进制
  • 变量值使用 0x 开头为十六进制
  1. 双圆括号,是 let 命令的简化,如 ((a=10))、((a++))、echo $((10+20))
  2. 特殊符号,引号、括号、运算和逻辑符号、转义符号和其它符号。
  3. 引号,分为 ’ 完全引用、" 不完全引用和 ` 执行命令。
  4. 括号,如下所示:
  • () (()) $() 圆括号,单独使用圆括号会产生一个子 shell(xyz=123),数组初始化 IPS=(ip1 ip2 ip3)
  • [] [[]] 方括号,单独使用方括号是测试或数组元素功能,两个方括号表示测试表达式
  • <> 尖括号,重定向符号
  • {} 花括号,输出范围 echo {0..9},文件复制 cp /etc/passwd{,.bak}
  1. 运算符号和逻辑符号,分为 + - * / % 算数运算符、> < = 比较运算符、&& || ! 逻辑运算符。
  2. 转义符号,\ 是转义某字符,如下所示:
  • \n 普通字符转义之后有不同的功能
  • \' 特殊字符转义之后,当做普通字符来使用
  1. 其它符号,分为 # 注释符、; 命令分隔符、case 语句的分隔符要转义 ;;: 空指令、. 和source 命令相同、~家目录、, 分隔目录、* 通配符、? 条件测试或通配符、$ 取值符号、| 管道符、& 后台运行、_ 空格。
  2. 测试与判断,退出与退出状态、测试命令 test、使用 if-then 语句、使用 if-then-else 语句、嵌套 if 的使用。
  3. 退出与退出状态,退出程序命令,如下所示:
  • exit
  • exit 10 返回 10 给 Shell,返回值非 0 位不正常退出
  • $? 判断当前 Shell 前一个进程是否正常退出
  1. 测试命令 test,如下所示:
  • test 命令用于检查文件或者比较值
  • test 可以做以下测试,文件测试、整数比较测试、字符串测试
  • test 测试语句可以简化为 [] 符号
  • [] 符号还有扩展写法 [[]] 支持 &&、||、<、>
  1. 使用 if-then 语句, if-then 语句的基本用法,如下所示:
  if [ 测试条件成立 ] 或 命令返回值是否为 0 
  then 执行相应命令
  fi 结束
  1. 使用 if-then-else 语句,if-then-else 语句可以在条件不成立时也运行相应的命令,如下所示:
  if [ 测试条件成立 ]
  then 执行相应命令
  else 测试条件不成立,执行相应命令
  fi 结束
  1. 使用 if-elif-else 语句, if-elif-else 语句可以在条件不成立时也运行相应的命令,如下所示:
  if [ 测试条件成立 ]
  then 执行相应命令
  elif [ 测试条件成立 ]
  then 执行相应命令
  else 测试条件不成立,执行相应命令
  fi 结束
  1. 嵌套 if 的使用,if 条件测试中可以再嵌套 if 条件测试,如下所示:
  if [ 测试条件成立 ]
  then 执行相应命令 
    if [ 测试条件成立 ]
    then 执行相应命令 
    fi
  fi 结束
  1. 分支,case 语句和 select 语句可以构成分支,如下所示:
 case '$变量' in
   '情况1' )
     命令... ;;
   '情况2' )
     命令... ;;
   * )
     命令... ;;
  esac
  1. 使用 for 循环遍历命令的执行结果,如下所示:
  • for 循环的语法,如下:
    for 参数 in 列表
    do 执行的命令
    done 封闭一个循环
    
  • 使用反引号或 $() 方式执行命令,命令的结果当作列表进行处理
  1. 使用 for 循环遍历变量和文本,如下所示:
  • 列表中包含多个变量,变量用空格分隔
  • 对文本处理,要使用文本查看命令取出文本内容
  • 默认逐行处理,如果文本出现空格会当做多行处理
  1. C 语言风格的 for 命令,如下所示:
for ((变量初始化;循环判断条件;变量变化))
do 
   循环执行的命令
done
  1. while 循环,如下所示:
while test测试是否成立
do
   命令
done
  1. 死循环,如下所示:
while test测试一直成立
do
   命令
done
  1. until 循环,until 循环与 while 循环相反,循环测试为假时,执行循环,为真时循环停止。
  2. 循环的使用,如下所示:
  • 循环和循环可以嵌套
  • 循环中可以嵌套判断,反过来也可以嵌套
  • 循环可以使用 breakcontinue 语句在循环中退出
  1. 使用循环处理命令行参数,如下所示:
  • 命令行参数可以使用 $1 $2 ... ${10}...${n} 进行读取
  • $0 代表脚本名称
  • $*$@ 代表所有位置参数
  • $# 代表位置参数的数量
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值