判断某个命令是否执行成功,并且以此作为后面的执行是否进行的条件;
有条件的执行:需要测试条件是否满足
bash中如何进行条件测试:
1.整数测试 2.字符串测试 3.文件测试
测试的表达式:
    [ condition ]
    ` cndition `
    test condition
整数测试的符号: 
    变量是否相等: 
               -eq 等于 
               -gt 大于  
               -ge  大于等于
               -lt小于
               -le 小于等于[ $I -le 100] 测试变量I小于等于100
               -ne  不等
字符串测试:
    ==    左右相等
    !=   左右不等
    -z   是否为空
    -n   是否不为空
文件测试:
    -e 文件是否存在
    -f 是否为普通文件
    -d 是否为目录
    -h/-L 是否为符号链接
    -b 是否块文件
    -c 字符设备
    -r 读权限
    -w 写权限
    -x 执行权限
选择分支:
if循环语句有三种:单分支,双分支,多分支
     单分支:if condition;then
                statement
                ...
             fi
     双分支:else
               statement
               ...
             fi
     多分支:
     if condition1;then
       statement
       ...
     elif condition2;then
       statement
       ...
     elif condition3;then
       statement
       ...
     else
       statement
练习:
1、求100以内的所有奇数的和,if单分支
      #!/bin/bash
   declare -i SUM=0 定义一个参数
   for I in {1..100};do
     if [ $[$I%3] -eq 0 ];then 如果$I除以3余数等于零则说明该数是奇数
        SUM+=$I 是奇数则进行相加
      fi
      done
      echo "The sun is:$SUM."
  
2、求一百以内的奇数和、偶数和  双分支
#!/bin/bash
declare -i EVEN=0 声明一个变量
declare -i ODD=0
for I in {1..100};do
 if [ $[$I%2] -eq 0 ];then 取余等于0则计算偶数和
   let EVEN+=$I
 else        不等于0则算奇数和
   let ODD+=$I
fi
done
echo "The even=$EVEN"
echo "The odd=$ODD"
3、判断文件类型 多分支情况
#!/bin/bash
FILE=/var/log
if [ -f $FILE ];then 如果是普通文件 就echo
   echo "$FILE is a commen file"
elif [ -d $FILE ];then如果是目录就。。
   echo "$FILE is a directory"
else
   echo "$FILE is unknow."如果两者都不是就说这个文件不知道是什么类型文件
fi
 
脚本如何接受参数:
   ./pingtest.sh a b c
   shift 轮换,轮替
   位置变量:$1,$2,$3,...${10},${11}
   $* 引用所有的变量(个体)
   $@  所有是个整体
   $#  位置变量的参数的个数之和
给变量A设定默认值:A=${B:-abc},B有值就等于B,否则就等于abc
如果B为空,B等于A的默认值,如果B有值,则A=B:A=${B:=abc}
如果为?且B为空,显示错误信息,B没值,A为abc,否则都等于B的值
sed 流编辑器,行编辑器
  非交互式编辑器
  d 删除行 sed "起始地址,结束地址 命令" inputfile
表示方法:
  ","隔开的表范围
  3 表范围
  /正则/command
  p 显示 被匹配到的行显示出来
  a\ 下面添加一行
  i\  上面添加一行
  !  对匹配添加取反
  s  搜索,用法同vim
sed的常用选项:
  -n 只显示被匹配到的内容
  -e 可以匹配多个模式
  -i 直接修改原文件
  -f 读取sed脚本