婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > shell腳本編程之for語句、if語句使用介紹

shell腳本編程之for語句、if語句使用介紹

熱門標簽:地圖標注員都是年輕人 如果做線上地圖標注 百度地圖標注錯了有責任嗎 揭陽智能電話機器人推薦 華鋒e路航港口地圖標注 江蘇云電銷機器人公司 客服外呼系統怎么樣 打電話機器人接我是他的秘書 河南信譽好的不封卡電話外呼系統

上部:

面向過程:
順序執行
選擇執行: if, case
循環執行: for, while, until

一、for語句

  格式:
     for 變量 in 列表;do
        語句1;
        語句2;
        ...
     done
   例1、寫一個腳本,添加10個用戶,并讓每個用戶的密碼同用戶名】

復制代碼 代碼如下:

       #!/bin/bash
       for I in {1..10}; do
          useradd user$I;
       echo user$I | passwd --stdin user$I
       done

  例2、寫一個腳本,分別顯示 /tmp/1.dir /tmp/2.dir /tmp/3.dir三個文件的時間戳,并將這三個文件被修改的時間改為201003030303.03

復制代碼 代碼如下:

        #!/bin/bash
        for Dir in /tmp/1.dir /tmp/2.dir /tmp/3.dir; do

           stat $Dir
           touch -m -t 201003030303.03 $Dir
           stat $Dir
        done

bash的變量類型:
    本地變量
    局部變量
    環境變量
    位置變量 :$1、$2、$3、$4....
    特殊變量:
        $?: 用于保存剛剛執行的命令的狀態返回值;
0:成功執行;1-255:失敗,1,2,127
可以使用exit命令在腳本中自定義腳本執行狀態返回值;如果不定義,腳本執行狀態返
回值取決于腳本執行結束前最后執行的那個語句的狀態;

       $@, $*: 所有位置參數;
       $#: 位置參數的個數;
       $0: 腳本名稱

二、if語句

1、單分支if語句:
      格式:
          if 條件; then
語句1
語句2
  ...
           fi
     例3、寫一個腳本,實現如下功能: 如果用戶存在,就說明其存在;

復制代碼 代碼如下:

#!/bin/bash
   UserName=user1
 if grep "^$UserName\&;" /etc/passwd > /dev/null; then
    echo "$UserName exists."
 fi

    例4、寫一個腳本,實現如下功能:如果設備/dev/sda3已經掛載,就顯示其掛載點;
復制代碼 代碼如下:

#!/bin/bash
Device='/dev/sda3'
if mount | grep "^$Device" > /dev/null; then
   mount | grep "/dev/sda3" | cut -d' ' -f3
fi

例5、寫一個腳本,實現如下功能: 如果/etc/rc.d/rc.sysinit中有空白行,就顯示其空白行數;

復制代碼 代碼如下:

    #!/bin/bash
     File='/etc/rc.d/rc.sysinit'
    if grep "^$" $File > /dev/null; then
     grep "^$" $File | wc -l
    fi

2、雙分支if語句:

  格式:
   if 條件; then
 語句1
 語句2
 ...
else
 語句1
 語句2
 ...
fi

   例6、寫一個腳本,實現如下功能:

     如果設備/dev/sda3已經掛載,就顯示其掛載點;否則,就說明其未掛載或設備不存在;

復制代碼 代碼如下:

        #!/bin/bash
          Device='/dev/sda3'
        if mount | grep "^$Device" > /dev/null; then

           mount | grep "/dev/sda3" | cut -d' ' -f3
        else
          echo "$Device not mounted or not exist."
        fi

3、多分支if語句:
    格式:
    if 條件1; then
 語句1
 語句2
 ...
elif 條件2; then
 語句1
 語句2
 ...
elif 條件3; then
 語句1
 語句2
 ...
else
 語句1
 語句2
 ...
fi
   例7、寫一個腳本:
      判斷當前主機的CPU生產商,其信息在/proc/cpuinfo文件中vendor id一行中。
      如果其生產商為GenuineIntel,就顯示其為Intel公司;
      如果其生產商為AuthenticAMD,就顯示其為AMD公司;
     否則,就顯示無法識別;

復制代碼 代碼如下:

    #!/bin/bash
       Vendor=`grep "vendor_id" /proc/cpuinfo | uniq | cut -d: -f2`
       if [[ $Vendor =~ [[:space:]]*GenuineIntel$ ]]; then

         echo "intel"
       elif [[ $Vendor =~ [[:space:]]*AuthenticAMD$ ]]; then
         echo "AMD"
       else
         echo "Unknown"
       fi

下部:

一、bash條件測試:
     整數測試   [ expression ]
     字符測試     [[ expression ]]
     條件測試     test expression   test 根據表達式求值的結果返回 0(真)或 1(假)

1、整數測試:數值比較
         -gt   大于
         -ge   大于或等于
         -eq   等于
         -lt   小于
         -le   小于或等于
         -ne    不等于

例1:寫一個腳本,生成兩個隨機數,比較其大小;顯示大數;

bash有個內置變量:$RANDOM

復制代碼 代碼如下:

#!/bin/bash
  A=$RANDOM
  B=$RANDOM
if [ $A -ge $B ]; then
  echo "Max number is $A."
else
  echo "Max number is $B."
fi

例2:寫一腳本,隨機生成一個整數,判定,顯示其奇偶性;

復制代碼 代碼如下:

#!/bin/bash
#
A=$RANDOM
if [ $[$A%2] -eq 0 ]; then
  echo "$A: Even"
else
  echo "$A: Odd"
fi

例3、寫一個腳本:

計算100以內所有奇數的和以及所有偶數的和;分別顯示之;

復制代碼 代碼如下:

#!/bin/bash
EvenSum=0
OddSum=0
for I in {1..100}; do
  if [ $[$I%2] -eq 0 ]; then
    EvenSum=$[$EvenSum+$I]
  else
    OddSum=$[$OddSum+$I]
  fi
done
echo "EvenSum is: $EvenSum. OddSum is: $OddSum."

例4、計算N以內所有奇數的和以及所有偶數的和;分別顯示之;N是通過參數傳遞過來的正整數;

復制代碼 代碼如下:

#!/bin/bash
EvenSum=0
OddSum=0
for I in `seq 1 $1`;do
  if [ $[$I%2] -eq 1 ]; then
    OddSum=$[$OddSum+$I]
  else
    EvenSum=$[$EvenSum+$I]
  fi
done
echo "EvenSum: $EvenSum."
echo "OddSUm: $OddSum."
echo "Sum: $[$EvenSum+$OddSum]"

例5、寫一個腳本,完成以下要求:

     1、添加10個用戶user1, user2, ..., user10;但要先判斷用戶是否存在,不存在而后再添加;
     2、添加完成后,顯示一共添加了幾個用戶;當然,不能包括因為事先存在而沒有添加的;
     3、最后顯示當前系統上共有多少個用戶;

復制代碼 代碼如下:

#!/bin/bash
Count=0
for I in {1..10}; do
  if id user$I > /dev/null; then
    echo "user$I exists."
  else
    useradd user$I
    echo "Add user$I successfully."
    Count=$[$Count+1]
  fi
done
echo "Add $Count new users."
echo "Total users: `wc -l /etc/passwd | cut -d' ' -f1`."

2、bash字符測試:
       >: 大于
       : 小于
      ==: 等于
      =~: 判斷左邊的字符串是否能夠被右邊的模式所匹配;通常用于[[]];
         [[ $opt1 =~ $opt2 ]]一般做行首、行尾錨定;不要加引號
 單目:
     -z $STRING: 為空則為真,不空則為假;
     -n $STRING: 為空則為假,不空則真;

例6、寫一個腳本,判定用戶的shell是否為bash;

復制代碼 代碼如下:

#!/bin/bash
Shell=`grep "^$1:" /etc/passwd | cut -d: -f7`
if [ "$Shell" == "/bin/bash" ]; then
  echo "Bash User."
  Ret=0
else
  echo "Not Bash User."
  Ret=9
fi
exit $Ret

例7、根據用戶shell的結束符是否為sh來判定其是否為登錄用戶:

復制代碼 代碼如下:

#!/bin/bash
Shell=`grep "^$1:" /etc/passwd | cut -d: -f7`
if [ -z $Shell ]; then
  echo "No shell."
  exit 3
fi
if [[ "$Shell" =~ sh$ ]]; then
  echo "Login User."
  Ret=0
else
  echo "None Login User."
  Ret=4
fi
exit $Ret

二、bash測試之文件測試:

    操作符 文件路徑
       -f: 測試其是否為普通文件,即ls -l時文件類型為-的文件;
       -d: 測試其是否為目錄文件,即ls -l時文件類型為d的文件;
       -e: 測試文件是否存在;存在為真,否則為假;
       -r: 測試文件對當前用戶來說是否可讀;
       -w: 測試文件對當前用戶來說是否可寫;
       -x: 測試文件對當前用戶來說是否可執行;
       -s: 測試文件大小是否不空,不空則真,空則假;
短路操作:只要前半段已經可以決定最終結果,后半段就不再運算;
 與運算:
   真 真 =  真
   真 假 =  假
   假 {真|假} = 假


 或運算:
   假 || 0 = 0
   假 || 1 = 1
   真 ||   =1

例8、給定一個路徑,判斷如果為普通文件,顯示之;如果為目錄,顯示之;
      否則,說無法識別;

復制代碼 代碼如下:

#!/bin/bash
if [ ! -e $1 ]; then
  echo "No such file."
  exit 7
fi
if [ -f $1 ]; then
  echo "Common file."
elif [ -d $1 ]; then
  echo "Directory."
else
  echo "Unknown file."
fi

綜合例子:
寫一個腳本:可以接受一個參數,其使用形式如下:
script.sh {start|stop|restart|status}
如果參數為start,創建空文件/var/lock/subsys/script,并顯示“Starting script successfully.”;
如果參數為stop,則刪除文件/var/lock/subsys/script,并顯示“Stop script finished.”;
如果參數為restart,則刪除文件/var/lock/subsys/script后重新創建,并顯示“Restarting script successfully.”;
如果參數為status,那么:
如果/var/lock/subsys/script文件存在,則顯示為“script is running.”
否則,則顯示為“script is stopped.”
其它任何參數:則顯示“script.sh {start|stop|restart|status}”

復制代碼 代碼如下:

#!/bin/bash
if [ $1 == start ] ;then
   touch /var/lock/subsys/script
   echo "Starting script successfully."
 elif [ $1 == stop ] ; then
    rm -f /var/louk/subsys/script
    echo "Stop script finished."
 elif [ $1 == restart ];then
     rm -f /var/louk/subsys/script
     touch  /var/lock/subsys/script
    echo "Restarting script successfully."
  elif [ $1 == status ];then
     [ -e /var/lock/subsys/script ] echo "script is running." || echo "script is stopped."
 else
   echo "script.sh {start|stop|restart|status}"
fi

您可能感興趣的文章:
  • shell腳本編程之if語句學習筆記
  • Linux shell腳本編程if語句的使用方法(條件判斷)
  • 詳解Shell編程之if語句實戰(小結)

標簽:淘寶邀評 馬鞍山 赤峰 邵陽 巴彥淖爾 婁底 金昌 許昌

巨人網絡通訊聲明:本文標題《shell腳本編程之for語句、if語句使用介紹》,本文關鍵詞  shell,腳本,編程,之,for,語句,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《shell腳本編程之for語句、if語句使用介紹》相關的同類信息!
  • 本頁收集關于shell腳本編程之for語句、if語句使用介紹的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    a亚洲天堂av| 亚洲国产日韩综合久久精品| 国内精品伊人久久久久av一坑| 国产精品不卡在线观看| 欧美本精品男人aⅴ天堂| 99久久99久久综合| 国产美女视频一区| 日韩高清一区在线| 亚洲一卡二卡三卡四卡五卡| 欧美经典三级视频一区二区三区| 欧美丰满少妇xxxbbb| 99热国产精品| 成人黄色小视频| 成人午夜看片网址| 国产电影一区二区三区| 麻豆91精品91久久久的内涵| 天堂资源在线中文精品| 亚洲一区二区三区爽爽爽爽爽| 国产精品理论在线观看| 国产农村妇女毛片精品久久麻豆 | 555夜色666亚洲国产免| 欧美专区亚洲专区| 91国偷自产一区二区三区成为亚洲经典| 成人性色生活片| 成人免费视频一区| 99视频一区二区三区| 99精品在线观看视频| 91蜜桃免费观看视频| 91麻豆自制传媒国产之光| 在线视频综合导航| 欧美日韩亚洲综合在线| 欧美高清dvd| 欧美一级欧美三级在线观看| 精品久久国产老人久久综合| 久久先锋影音av| 中文字幕一区二区三区四区不卡| 国产精品麻豆99久久久久久| 亚洲人成亚洲人成在线观看图片 | 日韩成人一级片| 久久国产精品99久久久久久老狼| 久久精品久久99精品久久| 韩国成人精品a∨在线观看| 国产凹凸在线观看一区二区| 成人美女视频在线观看| 色8久久精品久久久久久蜜| 欧美日免费三级在线| 精品久久久久久久久久久久久久久 | 日本在线不卡视频| 日韩精彩视频在线观看| 国产一区二区三区四| 91无套直看片红桃| 7878成人国产在线观看| 国产免费久久精品| 亚洲一区av在线| 国产在线精品一区二区三区不卡| av电影在线观看一区| 欧美一区二区三区免费大片| 久久久一区二区三区| 亚洲大尺度视频在线观看| 成人综合在线网站| 欧美一区二区在线看| 欧美日韩一区二区三区在线| 99在线视频精品| 日韩一区二区三区在线| 亚洲国产成人自拍| 日韩高清不卡一区二区三区| 波多野结衣欧美| 欧美一级黄色录像| 久久久.com| 天天亚洲美女在线视频| 91日韩精品一区| 国产欧美一区二区精品仙草咪| 美国一区二区三区在线播放| 豆国产96在线|亚洲| 欧美哺乳videos| 婷婷成人激情在线网| 99久久精品免费看| 中文字幕av在线一区二区三区| 日本va欧美va瓶| 欧美电影在线免费观看| 亚洲精品日韩一| 成人永久aaa| 欧美视频第二页| 自拍av一区二区三区| 粉嫩蜜臀av国产精品网站| 欧美xxxxxxxxx| 午夜视频一区在线观看| 99久久精品国产麻豆演员表| 国产亚洲综合在线| 久久精品国产99国产精品| 91精品国产一区二区| 亚洲综合一区在线| 一本久道久久综合中文字幕| 日韩欧美成人午夜| 日韩精品一二三区| 欧美丝袜自拍制服另类| 综合久久国产九一剧情麻豆| 9人人澡人人爽人人精品| 欧美一区二区成人| 日韩有码一区二区三区| 日韩精品在线网站| 精品亚洲欧美一区| 国产欧美一区二区精品性色超碰| 日韩高清不卡一区| 欧美久久免费观看| 久久国产精品99精品国产| 日韩欧美aaaaaa| 国产麻豆成人传媒免费观看| 国产亚洲1区2区3区| 久久精品亚洲精品国产欧美| 国产精一品亚洲二区在线视频| 在线成人av网站| 日本va欧美va精品| 久久蜜桃香蕉精品一区二区三区| 国产99久久久久| 中文字幕中文字幕一区| 欧美午夜精品久久久久久孕妇| 宅男噜噜噜66一区二区66| 青青青爽久久午夜综合久久午夜| 日韩亚洲欧美中文三级| 裸体一区二区三区| 国产精品天天看| 色综合久久天天综合网| 午夜久久久影院| 日韩欧美在线1卡| 国产高清精品网站| 国产精品精品国产色婷婷| 91碰在线视频| 男女男精品视频| 国产精品区一区二区三区| 一本色道久久综合狠狠躁的推荐| 玉足女爽爽91| 2021国产精品久久精品| 91美女福利视频| 美女mm1313爽爽久久久蜜臀| 亚洲色图视频网| 26uuu另类欧美| 99国产欧美另类久久久精品| 日韩精品91亚洲二区在线观看| 精品国产乱码久久久久久1区2区| 国产一区二区精品久久99| 玉足女爽爽91| 337p粉嫩大胆色噜噜噜噜亚洲| 日韩一区二区在线观看视频| 日韩成人一区二区三区在线观看| 亚洲手机成人高清视频| 日韩一卡二卡三卡| 国产精品夜夜嗨| 亚洲曰韩产成在线| 久久久午夜电影| 欧美一区二区久久久| 粉嫩一区二区三区在线看| 天天综合网天天综合色| 国产精品视频免费看| 欧美肥大bbwbbw高潮| 色哟哟一区二区在线观看| 久久精品久久精品| 亚洲一区在线观看免费| 中文字幕制服丝袜一区二区三区| 欧美一区二区视频在线观看 | 欧美精品一区二区不卡| 高清av一区二区| 视频一区免费在线观看| 一区二区三区四区亚洲| 国产精品你懂的| 欧美国产日产图区| 国产亚洲精久久久久久| 久久婷婷国产综合国色天香| 91精品国产麻豆| 欧美一级欧美三级| 在线播放国产精品二区一二区四区| 99久久久免费精品国产一区二区| 国产69精品一区二区亚洲孕妇| 国产精品一区在线观看乱码| 精品一区二区三区免费视频| 免播放器亚洲一区| 久久9热精品视频| 久久精品国产99久久6| 精品在线播放午夜| 日韩精品一级中文字幕精品视频免费观看 | 蜜臀精品久久久久久蜜臀| 午夜精品爽啪视频| 毛片一区二区三区| 亚洲第一二三四区| 视频一区二区国产| 亚洲一区二区三区视频在线播放 | 国产精品久线观看视频| 2023国产精品视频| 欧美精品九九99久久| 日韩亚洲欧美综合| 久久久久9999亚洲精品| 国产日韩欧美综合一区| 国产精品狼人久久影院观看方式| 欧美经典三级视频一区二区三区| 日韩美女视频在线| 久久九九久久九九| 国产女人水真多18毛片18精品视频| 亚洲国产岛国毛片在线| 亚洲视频在线一区| 大美女一区二区三区|