bash基础2.0.1

1、判断的类型

  • 算术判断
  • 字符串判断
  • 逻辑判断
  • shell内置判断

2、算术判断

  • [ 2 -eq 2 ]相等   ([]两边都要用空格隔开)
  • [ 2 -nq 2 ]不等
  • [ 3 -gt 1 ]大于
  • [ 3 -ge 2 ]大于等于
  • [ 3 -lt 1 ]小于
  • [ 3 -le 2 ]小于等于
  • (())也可以表示算术比较,((10>=9)),((10==10))

3、字符串比较  

  • [ string1 = stirng2 ] 如果两个字符串相等,则结果为真
  • [ string1 != stirng2 ] 如果两个字符串不相等,则结果为真
  • [ - n"$var"]  如果字符串不为空,则结果为真
  • [ - z"$var" ] 如果字符串为空,则结果为真
  • [[ "xxxx"==x* ]]表达式中表示0或者多个字符
  • [[ xxx==x?? ]] 在表达式中表示单个字符
  • 在引用变量的时候要加上双引号,否则当变量没有定义当时候会报错

4、内置判断

  • -e file,如果文件存在,则结果为真
  • -d file 如果文件为一个子目录,则结果为真
  • -f file,如果文件是一个普通的文件,则结果为真
  • -r file,如果文件可读,则结果为真
  • -w file,如果文件可写,则结果为真
  • -x file,如果文件可执行,则结果为真
  • -s file,如果文件长度不为零,则结果为真

[[]] 是[]的扩展语法,在老得sh里面并不支持,推荐用[]

5、逻辑控制

  • 条件 if
  • 分支case
  • 循环 for while until select
  • Break continue
  • 较常用的为 if for while

6、if结构 

  • if [ condiition ];then...; fi
  • if [ condiition ];then...;else...; fi
  • if [ condiition ];then...;elif...; fi
  • 简单的逻辑可以使用&&||  去替代
  • 条件可以用命令返回值代替

7、for循环

  • for((c1;c2;c3))
  • do
  • ...;
  • done
  • for((i=0;i<10;i++)); do echo $i ;done   所有被do执行的命令,最后都会被打印出来

8、for遍历循环

  • 用于递归数组,还可以递归以空格隔开的字符串序列,或者某个命令的返回值
  • for f in array[*];
  • do
  • ...
  • done
  1. ss="aa bb cc dd" ; for x in $ss; do echo $x; done;
  2. for x in `ls`; do echo $x; done
  3. ss=(aa bb cc "ss ee"); for x in "${ss[@]}"; do echo $x; done;

9、while循环

  • i=0 while[ $i -lt 3]; do echo $i;((i=i+1));done
  • 一个有用的小技巧,一行行的读取文件内容 while read line; do echo $line; done < /tmp/tmp       注意:/tmp/tmp为文件名

10、退出控制

  • return函数返回
  • exit脚本推出
  • break退出当前循环
  • continue跳过当前的循环,进入下一次的循环

posted on 2020-04-16 10:07  菲菲菲非常可爱的小白兔  阅读(176)  评论(0)    收藏  举报