• if,for,while


    1.shell流程控制

    流程控制是改变程序运行顺序的指令。linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case)。下面我将通过例子介绍下,各个语句使用方法

    read -p

    黑洞文件:/dev/null

    2.if语句,条件判断,真假

    格式:

    格式:if list; then list; [ elif list; then list; ] ... [ else list; ] fi

    2.1单分支

    if 条件表达式; then

    命令

    fi

    实例:

    #!/bin/bash

    N=10

    if [ $N -gt 5 ]; then

      echo yes

    fi

    # bash test.sh

    yes

    2.2双分支

    if 条件表达式; then

      命令

    else

      命令

    fi

    实例1:

    #!/bin/bash

    N=10

    if [ $N -lt 5 ]; then

      echo yes

    else

      echo no

    fi

    #bash -x test.sh #-x测试

    # bash test.sh

    no

    实例2:判断crond进程是否在运行

    #!/bin/bash

    NAME=crond

    NUM=$(ps aux | grep $NAME | grep -vc "grep")

    if [ $NUM -eq 1 ]; then

      echo "$NAME running."

    else

      echo "$NAME is not running!"

    fi

    实例3

    #!/bin/bash

    if ping -c 1 192.168.1.1 &>/dev/null; then #将ping的结果写入到黑洞文件中

      echo "OK."

    else

      echo "NO!"

    fi

    2.3多分支

    if 条件表达式; then

      命令

    elif 条件表达式; then

      命令

    else

      命令

    fi

    实例

    #!/bin/bash

    N=$1

    if [ $N -eq 3 ]; then

      echo "eq 3"

    elif [ $N -eq 5 ]; then

      echo "eq 5"

    elif [ $N -eq 8 ]; then

      echo "eq 8"

    else

      echo "no"

    fi

    3.shell编程之if语句实战案例

    需求:

    1. 完成用户输入文件或者目录的自动复制,并可以实现用户指定复制目标位置。

    2. 用户体验佳。

    #!/bin/bash

    read -p "pls enter a file you want to copy:" file

    if [ -f $file -o -d $file ];then

    read -p "do you want to copy the $file?(y/n)" sure

         confirm=$(echo ${sure} | tr A-Z a-z)

    if [ "$confirm" == "y" ];then

    read -p "where do you want to copy?" dire

    if [ -d $dire ];then

    cp -a $file $dire

    echo "the $file copied to $dire"

    else

    echo "the $dire is not exists"

    exit 1

    fi

    elif [ "$confirm" == "n" ];then

    echo "bye"

    else

    echo "pls input y or n"

    fi

    else

    echo "the $file is not exists"

    fi

    4.for语句,批量化

    格式:for name [ [ in [ word ... ] ] ; ] do list ; done

    for 变量名 in 取值列表

    do

      命令

    done

    实例1:

    #!/bin/bash

    for i in {1..3}; do

      echo $i

    done

    # bash test.sh

    2

    实例2:计算100以内偶数和

    #!/bin/bash

    sum=0

    for i in `seq 2 2 100`

    do

    let sum+=$i

    done

    echo "$sum"

    5.shell编程之for语句实战案例

    1. 批量检查当前教室主机是否在线

    #!/bin/bash

    . /etc/init.d/functions #加载库

    ip=192.168.88.

    for i in {1..20}

    do

    if ping -c 1 -w 1 $ip$i &>/dev/null;then

    echo -n "$ip$i在线!" #-n是换行的意思

    success

    echo ""

    else

    echo -n "$ip$i不在线!"

    failure

    echo ""

    fi

    done

    6.while语句,后台检测

    条件为真就进入死循环;条件为假就退出循环

    格式:while list; do list; done

    while 条件表达式; do

    命令

    done

    7.break和continue语句只能用在while和for中

    break 是终止循环。

    continue 是跳出当前循环。

    8.case语句

    case 语句一般用于选择性来执行对应部分块命令。

    case 模式名 in

    模式 1)

      命令

      ;;

    模式 2)

      命令

      ;;

    *)

      不符合以上模式执行的命令

    esac

    每个模式必须以右括号结束,命令结尾以双分号结束,最后一个模式不需要添加;;。

    9.shell编程高级实战

    bash test_tty.sh & : 关掉终端脚本停止运行,&代表后台运行,会生成一个tty文件,查看这个文件可以知道运行状态

    nohup bash test_tty.sh &: 关掉终端脚本不停止运行,关掉脚本用kill。

  • 相关阅读:
    ruby 学习笔记 2 -变量
    sharepoint获取用户属性
    读取Sql Server数据库数据
    更新SQL Server数据库数据
    客户端开发添加sharepoint凭证
    设置Log记录
    C#发送邮件
    echarts饼状图
    提升工作流权限,打开designer的App step功能
    echars折柱混合
  • 原文地址:https://www.cnblogs.com/liangzb310/p/11026414.html
Copyright © 2020-2023  润新知