亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • 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下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!