• Linux shell脚本分支循环函数笔记


    测试和判断 test命令(也可以使用[]代替test)可用来判断文件 整数 和字符串 返回逻辑值

      文件测试 -e 文件存在 -d 文件类型是否为目录 -f文件类型为普通文件

      整数比较 -eq (equal)相等 -ge (greater equal)大于等于 -gt(greater than) 大于 -le(less equal)小于等于 -lt(less than)小于

        更高级的test支持 ><=等符号的使用 这时要用[[]]符号代表test的高级用法

      字符串测试 -n 字符串长度是否非0  -z 是否为0  =字符串判等 !=字符串不等 (详细用法见 man test)

      当测试结果为正确时 返回0 返回非0值表示不正确  使用[]时 里面的空格不能少

    分支 ifcase两种

      if通用格式: 包括了 if-else   if-elif-else if嵌套

    if [ $USER = root ]; then
        if [ $UID = 0 ]; then
            echo "root 0"
        elif [ $UID = 1 ]; then
            echo "root 1"
        else
            echo "root"
        fi
    else
            echo "not root"
    fi

      case通用格式 每一项结束使用;; 不需要break  使用*可匹配任意情况

    case "$1" in
        "start"|"START")
            echo "Starting..."
        ;;
        "stop"|"STOP")
            echo "Stoping..."
        ;;
      *)
    echo "Usages: $0 {start|stop|reload|reload}" ;; esac

     循环 for和while两种形式 循环也支持 break 和continue  

      for 形式的

    for i in {1..9}
    do
        mkdir $i
    done

      shell还支持c语言风格的for 但是shell并不擅长数值计算  这里使用了双圆括号(())

    for ((i=1; i<8; i++))
    do
        echo $i
    done

      while 就是满足条件一直执行

    i=0
    while [ $i -lt 8 ]
    do 
        echo "$i"
        ((i++))
    done

      until 正好和while相反 不满足条件时一直执行

    i=0
    until [ $i -gt 8 ]
    do 
        if [ $i -eq 5 ]; then
            ((i++))
            continue
        elif [ $i -eq 7 ]; then
            break
        else
            echo "$i"
            ((i++))
        fi
    done

    函数 function fname(){} function可以省略  调用时直接使用fname不用加括号 若有参数 直接跟在后面就行了

      可在函数里面使用local申请局部变量 $# 代表参数数量 $*$@ 代表所有位置参数 shift参数左移  $1 $2 $3 ...代表第1 2 3 个参数

    fork炸弹 f (){f|f}  f 就是递归调用一直创建进程消耗内存

  • 相关阅读:
    配置管理puppet
    ruby安装
    angularjs 安装篇
    idea 快捷键
    rabbitmq java queue
    spring cloud bus rabbitmq
    rabbitmq 安装篇
    spring cloud eureka
    spring cloud config
    postgre 导入sql文件
  • 原文地址:https://www.cnblogs.com/kkcoolest/p/11741623.html
Copyright © 2020-2023  润新知