!/bin/bash
判断 ok是否等于ok
[ “ok” = “ok” ]

  1. if [ "ok" = "ok" ]
  2. then
  3. echo "qual"
  4. fi

判断 23是否大于22

  1. if [ 23 -gt 22 ]
  2. then
  3. echo "大于"

判断 目录中的文件是否存在

  1. if [ -e /root/a.log ]
  2. then
  3. echo "有文件"

流程控制语句

if结构

如果输入的参数大于等于60,输出 几个了,如果小于60,输出不及格

  1. if [ $1 -ge 60]
  2. then
  3. encho "及格了"
  4. elif[ $1 -lt 60]
  5. echo"不及格"
  6. fi

case语句

当命令行参数是1时,输出周一,是2 时,输出周二,其他情况输出 other
语句结构是
case $变量名 in
“值1”)
;;
….
“值n”)
;;
*)

  1. #!/bin/bash
  2. case $1 in
  3. "1")
  4. echo "周一"
  5. ;;
  6. "2")
  7. echo "周二"
  8. ;;
  9. *)
  10. echo "other"
  11. ;;
  12. esac

使用就是 ./脚本名 + 参数

for循环
写法1

  1. #!/bin/bash
  2. #打印命令行输入的参数
  3. #使用 $*
  4. for i in "$*"
  5. do
  6. echo "the num is $i"
  7. done
  8. echo "=========="
  9. #使用 $@
  10. for j in "$@"
  11. do
  12. echo "the num is $j"
  13. done
  14. 区别就是 $* 把内容当做一个整体
  15. $@ 把内容一个一个遍历输出

写法2

  1. #!/bin/bash
  2. SUM=0
  3. for ((i=1;i<=100;i++))
  4. do
  5. SUM=$(($SUM+$i))
  6. #SUM=$[$SUM+$i] 和这个效果相同的
  7. done
  8. echo"和是$SUM"

while 循环

写法
while [ 条件表达式 ]
do
程序
done

  1. # 从命令行输入一个数 n,统计 1+ ... +n 的值是多少
  2. #!/bin/bash
  3. SUM=0
  4. i=0
  5. while [[ $i -le $1 ]]
  6. #如果i小于 输入的n,则当i等于0,和是0;i=1,和是1;i=2,和是3
  7. do
  8. SUM=$[$SUM+$i]
  9. i=$[$i+1]
  10. # 自增不像java中用的 i++,而是使用加法,再返回给自己
  11. done
  12. echo "sum =$SUM"
  13. 执行就用 脚本名+ 参数