为了账号安全,请及时绑定邮箱和手机立即绑定
  • while循环

        while循环是不定循环,也称作条件循环。只要条件判断式成立,循环就会一直继续,直到条件判断式不成立,循环才会停止。这就和for的固定循环不太一样了。


    while[条件判断式]

        do

            程序

        done

    实例1

    #!/bin/bash

    #从1加到100

    i=1

    s=0

    while [ $i -le 100 ]

    #如果变量i的值小于等于100,则执行循环

        do 

            s=$(( $s+$i ))

            i=$(( $i+1 ))

        done 

    echo "The sum is:$s"


    实例2

    #!/bin/bash

    #从1加到100

    i=1

    s=0

    while [ $i -gt 100 ]

    #如果变量i的值小于等于100,则执行循环

        do 

            s=$(( $s+$i ))

            i=$(( $i+1 ))

        done 

    echo "The sum is:$s"


    查看全部
  • 所有shell数值运算都要用(())括起来


    批量添加指定数量的用户实例

    #!/bin/bash

    #批量添加指定数量的用户实例

    read -t 30 -p "input user name:" name

    read -t 30 -p "input password:" pass

    read -t 30 -p "input user number:" num

    #检查输入内容是否为非空

    if [ -n "$name" -a -n "$pass" -a -n "$num" ]

            then

    #检查输入的用户数量是否为纯数字 

            chknum=$( echo "$num" | sed 's/[0-9]//g' )

            if [ -z "$chknum" ]

                    then

                            for (( i=1;i<="$num";i=i+1 ))

                                    do

    #添加用户

                                         /usr/sbin/useradd $name$i &>/dev/null

    #添加用户密码,passwd 的--stdin参数是非交互输入,直接传入密码,不需要第二次确认

                                            echo $pass | /usr/bin/passwd --stdin $name$i &>/dev/null

                                            echo "add $i complete"

                                    done

            else

                    echo "the num must be number"

            fi

    else

            echo "input can not be null,please input"

    fi


    cat /etc/passwd | grep /bin/bash | grep -v /root | cut -d ":" -f 1


    批量删除用户实例

    #!/bin/bash

    #批量删除用户

    user=$(cat /etc/passwd | grep "/bin/bash" | grep -v root | cut -d ":" -f 1)

    for i in $user

            do

    #删除用户,-r参数是删除用户家目录

                    /usr/sbin/userdel -r $i

            done


    查看全部
  • for循环

    语法1:

    for 变量 in 值1 值2 值3 …

        do

            程序

        done

    示例1

    #!/bin/bash 

    for i in 1 2 3 4 5

        do 

            echo $i

        done

    示例2

    ##!/bin/bash

    cd /root/test

    ls *.tar.gz > ls.log

    for i in $( cat ls.log )

            do  

                 tar -czf $i &>/dev/null

    #把执行过程中所有输出信息丢到回收站,不显示在屏幕上

            done

    rm -rf ls.log


    查看全部
    0 采集 收起 来源:for循环

    2019-04-05

  • 多分支case条件语句

        case语句和if...elif...else语句一样都是多分支条件语句,不过和if多分支条件语句不同的是,case语句只能判断一种条件关系,而if语句可以判断多种条件关系。

    case $变量名 in

        "值1")

            如果变量的值等于值1,则执行程序1

            ;;

        "值2")

            如果变量的值等于值2,则执行程序2

            ;;

            …省略其他分支.…

        *)

            如果变量的值都不是以上的值,则执行此程序

            ;;

    esac

        vi case.sh

    #!/bin/bash

    read -t 30 -p "please input yes/no:" cho 

    case "$cho" in

            "yes")

                echo "yes"

                ;;  

            "no")

                echo "no"

                ;;  

            *)  

                echo "please input yes/no again!!!"

                ;;  

    esac


    查看全部
  • 多分支if条件语句

    if [ 条件判断式1 ]

        then

            条件成立时,执行的程序

    elif [ 条件判断式2 ]

        then

            条件不成立时,执行另一个程序

    else

        当所有条件都不成立时,最后执行的程序

    fi


    查看全部
  •     vi apache.shujuku #注意文件名不要取httpd

    #!/bin/bash 

    test=$(ps aux | grep httpd | grep -v grep)

    #截取httpd进程,把结果赋给变量test

    if [ -n "$test" ] #-n非空,执行then中命令

            then

                    echo "httpd is open!"

            else

                    echo "httpd is closed!!"

    fi


    查看全部
  • meigong chengxu shujuku apache linux fuwuqi yuming IP daikuan www

    美工  程序 数据库 apache服务 linux 服务器 域名 IP地址  带宽 网页

        www.netcraft.com     #网页查看一些服务器数据统计

        ps aux | grep httpd | grep -v grep     #查询httpd是否启动


    查看全部
  • 双分支if条件语句

    if [ 条件判断式 ]

         then

              条件成立时,执行的程序

         else

               条件不成立时,执行另一个程序

    fi

    举例:

        vi if3.sh

    #!/bin/bash

    read -t 30 -p "Please input a dir:" dir

    if [ -d "$dir" ]  #如果输入的是一个目录

            then

                    echo "is a directory"

            else

                    echo "is not a directory"

    fi


    查看全部
  • df -h | grep "/dev/sda5" | awk '{print $5}' | cut -d "%" -f 1    

    判断分区使用率

        vi if2.sh

    #!/bin/bash

    test=$(df -h | grep "/dev/sda5" | awk '{print $5}' | cut -d "%" -f 1)

    echo $test          #sda5分区使用率

    if [ "$test" -ge "90" ]          #-ge大于等于90

            then

                echo "/ is full!根磁盘已满!"

    fi


    查看全部
  • 单分支if条件语句

    if [ 条件判断式 ];then

        程序

    fi

    或者

    if [ 条件判断式 ]

        then

        程序

    fi

    单分支条件语句需要注意几个点

        if语句使用fi结尾,和一般语言使用大括号结尾不同

        [条件判断式]就是使用test命令判断,所以中括号和条件判断式之间必须有空格

        then后面跟符合条件之后执行的程序,可以放在[]之后,用";"分割。也可以换行写入,就不需要";"了

    判断登陆的用户命令

        whoami

        

        env      #USER=root

        env | grep USER | cut -d "=" -f 2     #筛选USER,以分隔符"="进行分割,提取第二个字段



    例子1:判断登陆的用户是否root

    vi if1.sh

    #!/bin/bash 

    test=$(env | grep "USER" | cut -d "=" -f 2)

    #echo $test

    if [ "$test" == root ]

            then

            echo "Current user is root."

    fi



    查看全部
  • 学习小脚本实例的好处:

         1、掌握语法结构

         2、了解shel的作用

         3、分析编程思想

    建立编程思想的方法:

         1、熟悉Linux基本命令、规范、语法及shell语法

         2、当遇到实际需求时,应用所学知识

    如何“背”程序?

         1、抄写老师的程序并能正确运行

         2、为程序补全注释

         3、删掉注释,为代码重新加注释

         4、看注释写代码

         5、删掉代码和注释,从头开始写

        

    查看全部
  • 多重条件判断 

    测试选项                   作用

    判断1 -a 判断2      逻辑与,判断1和判断2都成立,最终的结果才为真

    判断1 -o 判断2      逻辑或,判断1和判断2有一个成立,最终的结果就为真

    ! 判断                  逻辑非,使原始的判断式取反

    举例:

         [ "$aa" == "$bb" -a "$aa" -gt 3] && echo "yes" || echo "no"


    查看全部
  • 字符串的判断

    测试选项              作用

    -z 字符串              判断字符串是否为空(为空返回真)

    -n 字符串               判断字符串是否为非空(非空返回真)

    字串1 == 字串2      判断字符串1是否和字符串2相等(相等返回真)

    字串1 != 字串2      判断字符串1是否和字符串2不相等(不相等返回真)

    举例:

         name=fengj

         [ -z $name ] && echo "yes" || echo "no"


         name=""

         [ -z $name ] && echo "yes" || echo "no"


         aa=11

         bb=22

         [ "$aa" == "$bb" ] && echo "yes" || echo "no"     #判断两个变量的值是否相等,明显不相等,所以返回no

        

        

    查看全部
  • 两个整数之间的比较

    测试选项                       作用

    整数1 -eq 整数2           判断整数1是否和整数2相等(相等为真)

    整数1 -ne 整数2            判断整数1是否和整数2不相等(不相等位置)

    整数1 -gt 整数2             判断整数1是否大于整数2(大于为真)

    整数1 -lt 整数2             判断整数1是否小于整数2(小于位置)

    整数1 -ge 整数2              判断整数1是否大于等于整数2(大于等于为真)

    整数1 -le 整数2              判断整数1是否小于等于整数2(小于等于为真)

    举例:

        [ 23 -ge 22 ] && echo "yes" || echo "no" 




    查看全部

  • 两个文件之间的比较

    测试选项 作用

    文件1 -nt 文件2      判断文件1的修改时间是否比文件2的新(如果新则为真)

    文件1 -ot 文件2      判断文件1的修改时间是否比文件2的旧(如果旧则为真)

    文件1 -ef 文件2     判断文件1是否和文件2的Inode号一致,可以理解为两个文件是否为同一个文件。这个判断用于判断硬链接是很好的方法

    举例:

        ln /root/student.txt /tmp/stu

        [ /root/student.txt -ef /tmp/stu ] && echo "yes" || echo "no"


    查看全部

举报

0/150
提交
取消
课程须知
小伙伴们,学习本课程前需要掌握Linux常用命令,并学习《Tony老师聊shell》系列的前四门课程呦!
老师告诉你能学到什么?
1、掌握条件判断和流程控制的基本语句 2、通过大量案例的学习,掌握shell编程思想 3、体会shell编程在Linux运维中的重要作用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!