亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁 | 考試用書 | 培訓課程 | 模擬考場 | 考試論壇  
        當前位置:操作系統(tǒng) > Linux > 文章內(nèi)容
        

      Linux操作系統(tǒng)學習筆記管理簡單shell語法(1)

       [ 2016年6月21日 ] 【

      編寫Shell腳本的簡單語法

        提到編程,條件、分支、循環(huán)等語法肯定少不了。shell腳本編程亦是如此,下面只是結合最近學習的一些簡單語法做的筆記,如有錯誤,歡迎指正。

        if條件語句

        條件測試操作

          test命令:

            用途:測試特定的表達式是否成立,當條件成立時,命令執(zhí)行后的返回值為0,否則為其它值

            格式:test  條件表達式   或者

               [  條件表達式  ](注意:方括號[]和條件表達式語句之間至少需要一個空格)

        常見的測試類型:測試文件狀態(tài);字符串比較;整數(shù)值比較;邏輯測試

      測試文件狀態(tài):[  操作符   文件或目錄  ]

      常用的測試操作符

      -d:測試是否為目錄(Directory)

      -e:測試目錄或文件是否存在(Exist)

      -f:測試是否為文件(File)

      -r:測試當前用戶是否有權限讀。≧ead)

      -w:測試當前用戶是否有權限寫入(Write)

      -x:測試當前用戶是否可執(zhí)行(Excute)該文件

      -L:測試是否為符號連接(Link)文件

      如何判斷當前所在的工作目錄是否為 /usr/src?
      [ $PWD = “/usr/src” ] && echo “YES” || echo “NO”

      [root@localhost ~]# [  -d /etc/vsftpd  ]
      [root@localhost ~]# echo $?
      0   ==>返回值為0,表示上一步測試的條件成立
      [root@localhost ~]# [  -d /etc/hosts  ]
      [root@localhost ~]# echo $?
      1
      [root@localhost ~]# [ -e /media/cdrom ] && echo "YES"   ==>如果測試的條件成立則輸出“YES”
      YES 
      [root@localhost ~]# [ -e /media/cdrom/Server ] && echo "YES“
      [root@localhost ~]#

          上述&&是“與”的意思,“… && echo YES”表示如果沒有輸出,則表示前面執(zhí)行的測試條件不成立或命令出錯。(備注:l測試文件是否可寫(-w)時,不要以root用戶(特權用戶)的身份執(zhí)行測試,否則可能會無法準確判斷)

      整數(shù)值比較:[  整數(shù)1  操作符  整數(shù)2  ]

      常用的測試操作符

      -eq:等于(Equal)

      -ne:不等于(Not Equal)

      -gt:大于(Greater Than)

      -lt:小于(Lesser Than)

      -le:小于或等于(Lesser or Equal)

      -ge:大于或等于(Greater or Equal)

       

      [root@localhost ~]# who | wc -l
      5
      [root@localhost ~]# [ `who | wc -l` -le 10 ] && echo "YES"  ==>如果登錄用戶數(shù)小于或等于10則輸出YES
      YES 
      [root@localhost ~]# df -hT | grep "/boot" | awk '{print $6}'
      12% 
      [root@localhost ~]# BootUsage=`df -hT | grep "/boot" | awk '{print $6}' | cut -d "%" -f 1`

      解釋: df -hT                查看所有分區(qū)的磁盤空間使用情況

      grep “/boot”          過濾出關于/boot分的數(shù)據(jù)行

      awk ‘{print $6}’      以空格為分隔符,只取第六個字段數(shù)據(jù)

      cut -d “%” -f1        以%為分隔符,只取第一個字段數(shù)據(jù)

      [root@localhost ~]# echo $BootUsage
      12
      [root@localhost ~]# [ $BootUsage -gt 95 ] && echo "YES"  ==>如果/boot分區(qū)的磁盤使用率超過95%則輸出YES

      條件測試操作:[  字符串1 =  字符串2  ]

      常用的測試操作符

      =:字符串內(nèi)容相同

      !=:字符串內(nèi)容不同,! 號表示相反的意思

      -z:字符串內(nèi)容為空

      [root@localhost ~]# read -p "Location:" FilePath
      Location:/etc/inittab
      [root@localhost ~]# [ $FilePath = "/etc/inittab" ] && echo "YES" ==>如果鍵入路徑與指定的目錄一致則輸出YES
      YES 
      [root@localhost ~]# [ $LANG != "en.US" ] && echo $LANG  ==>如果當前的語言環(huán)境不是en_US,則輸出LANG變量的值
      zh_CN.UTF-8 

      (字符串比較可以用于檢查用戶輸入,例如在提供交互式操作時,判斷用戶輸入的選擇項是否與指定的變量內(nèi)容相匹配)

      邏輯測試:[  表達式1  ]  操作符  [  表達式2  ]

           常用的測試操作符

      -a或&&:邏輯與,“而且”的意思(前后兩個表達式都成立時整個測試結果才為真,否則為假)

      -o或||:邏輯或,“或者”的意思(操作符兩邊至少一個為真時,結果為真,否則結果為假)

      !:邏輯否( 當指定的條件不成立時,返回結果為真)

      [root@localhost ~]# echo $USER
      root
      [root@localhost ~]# [ $USER != "teacher" ]  &&  echo "Not teacher" ==>如果發(fā)現(xiàn)用戶不是teacher,則提示“Not teacher”
      Not teacher
      [root@localhost ~]# [ $USER = "teacher" ]  ||  echo "Not teacher"
      Not teacher  

      邏輯測試指的是:同時使用兩個(或多個)條件表達式時,判斷它們之間的關系

        if語句結構——當“條件成立”時執(zhí)行相應的操作

            單分支:

      首頁 1 2 尾頁
      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動訪問考試網(wǎng) | 復制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
      關于本站  網(wǎng)站聲明  廣告服務  聯(lián)系方式  站內(nèi)導航  考試論壇
      Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved