日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell编程之条件语句(文件测试,test命令,字符串和逻辑测试,if单支语句,if双支语句,if多支语句,case命令,用if写跑步小实验)

發布時間:2024/2/28 编程问答 22 豆豆

文章目錄

  • shell編程之條件語句
  • 條件測試
    • test命令
    • 整數值測試
    • free -m 提供了更簡潔的查看系統內存使用情況:
  • 字符串和邏輯測試
    • 字符串
    • 邏輯測試
    • 一元運算符,二元運算符和三元運算符
  • if語句
      • if單分支語句
      • if雙分支語句(一看就懂)
      • if多分支語句(一看就懂)
      • case 命令
      • 有趣小實驗

shell編程之條件語句

簡單的shell腳本程序中,各條語句將按先后順序依次執行,從而實現批處理的自動化過程。

條件測試

test命令

-d 測試是否為目錄(directory) -e 測試目錄或文件是否存在(Exist) -f 測試是否為文件(File) -r 測試當前用戶是否有權限讀取(Read) -w 測試當前用戶是否有權限寫入(Write) -x 測試當前用戶是否有權限執行(eXcute) [root@localhost ~]# mkdir ccc [root@localhost ~]# test -d ccc 測試是否是目錄 [root@localhost ~]# echo $? 0 是 [root@localhost ~]# test -f ccc 測試是否是文件 [root@localhost ~]# echo $? 1 不是 [root@localhost ~]# [ -d ccc ] [root@localhost ~]# echo $? 0 [root@localhost ~]# [ -f ccc ] [root@localhost ~]# echo $? 1 [root@localhost ~]# [ -x ccc ] && echo "yes" yes [root@localhost ~]# [ -x ccc ] || echo "yes"

整數值測試

-eq 等于(Equal) -ne 不等于(Not Equal) -gt 大于(Greater Than) -lt 小于(Lesser Than) -le 小于或等于(Lesser or Equal) -ge 大于或等于(Greater or Equal) [root@localhost ~]# [ 5 -gt 3 ] && echo “yes” “yes” [root@localhost ~]# [ 5 -lt 3 ] && echo “yes” [root@localhost ~]# [ 5 -eq 5 ] && echo “yes” “yes”

free -m 提供了更簡潔的查看系統內存使用情況:

[root@localhost ~]# free -m 提供了更簡潔的查看系統內存使用情況:total used free shared buff/cache available Mem: 3770 160 3408 11 201 3366 Swap: 3967 0 3967Mem:表示物理內存統計 Swap:表示硬盤上交換分區的使用情況 total1: 表示物理內存總量。 used1: 表示總計分配給緩存(包含buffers 與cache )使用的數量,但其中可能部分緩存并未實 free1: 未被分配的內存。 shared1: 共享內存,一般系統不會用到,這里也不討論 buffers1: 系統分配但未被使用的buffers 數量。 cached1: 系統分配但未被使用的cache 數量。buffer 與cache 的區別見后面。 used2: 實際使用的buffers 與cache 總量,也是實際使用的內存總量。 free2: 未被使用的buffers 與cache 和未被分配的內存之和,這就是系統當前實際可用內存。

字符串和邏輯測試

字符串

操作符解釋
=第一個字符串與第二個字符串內容相同
!=第一個字符串與第二個字符串內容不同,!號表示相反的意思
-z檢查字符串內容是否為空,對于未定義或賦予空值的變量將視為空串
[root@localhost ~]# [ “男” != “男“ ] && echo "yes" yes [root@localhost ~]# [ “男” = “女“ ] && echo "yes" [root@localhost ~]# [root@192 ~]# vim 44.sh #!/bin/bash read -p "是后創建/opt/zhang目錄: (yes/no)" ack [ $ack = yes ] && mkdir /opt/zhang echo "創建成功" [root@192 ~]# sh 44.sh 是后創建/opt/share目錄: (yes/no)yes 創建成功 [root@192 ~]# ls /opt zhang

邏輯測試

操作符解釋
&&而且”的意思
||或者"的意思
邏輯否

&&和&都是表示與,區別是&&只要第一個條件不滿足,后面條件就不再判斷。

用 || 時,左端為真,右端不需要進行運算,結果直接為真

但&&和 || 更為高效一點,可以減少不必要的運算

[root@xue ~]# [ 1 -ne 2 ] && echo "yes" yes [root@localhost opt]# [ -d /opt/zhangsan ] && echo "yes" yes

一元運算符,二元運算符和三元運算符

let 命令

let 命令是 BASH 中用于計算的工具,用于執行一個或多個表達式,變量計算中不需要加上 $ 來表示變量。如果表達式中包含了空格或其他特殊字符,則必須引起來。

i=i++:先賦值在運算i=++i:先自加在賦值i=–i:先自減在賦值 [root@192 ~]# echo $i 1 [root@192 ~]# let i=++i [root@192 ~]# echo $i 2 [root@192 ~]# let i+=2 相當于i=i+2' [root@192 ~]# echo $i 4

if語句

if單分支語句

單分支結構(基本格式) if 條件測試操作then 命令序列 fi

實驗

[root@localhost ~]# vim text #!/bin/bsah read -p "請輸入目錄位置: " FILE if [ ! -d $FILE ]thenmkdir -p $FILE fi [root@localhost ~]# sh text 請輸入目錄位置: tesr [root@localhost ~]# lstesr

if雙分支語句(一看就懂)

雙分支結構(基本格式) if 條件測試操作then 命令序列1語句塊1(條件成立)else 命令序列2語句塊2(條件不成立) fi ------------------------------- 搞笑解釋 如果(if) [你有房] 那么(then)我就嫁給你 否則(else)good bye! 果如

實驗

if雙分支語句 [root@localhost ~]# vim text #!/bin/bsah read -p "請輸入目錄位置: " FILE if [ -e $FILE ]thenmkdir -p $ FILE mkdir的-p選項允許你一次性創建多層次的目錄elseecho "目錄已存在" fi [root@localhost ~]# sh text 請輸入目錄位置: 12 目錄已存在 判斷主機是否在線 [root@localhost ~]# vim 3.txt #!/bin/bash read -p "請輸入IP地址:" addr ping -c 3 -i 0.2 -W 3 $addr &> /dev/null 《《 意思是把 標準輸出 和 標準錯誤輸出 都重定向到黑洞里 if [ $? -eq 0 ]thenecho "$addr is up"elseecho "$addr is down" fi[root@localhost ~]# sh 3.txt 請輸入IP地址:192.168.136.244 192.168.136.244 is up -c:發送三個包 -i: 發包間隔0.2秒 -W:等待時間3秒

if多分支語句(一看就懂)

多分支結構(基本格式) if 條件測試then 命令序列1語句塊1(條件成立) elif 條件測試操作2語句塊1(條件成立)then 命令序列2 else 命令序列3 fi -------------------------------------------- 搞笑解釋 如果(if) [你有房] 那么(then)我就嫁給你 或者(elif) [你爸是馬云] 那么(then)我就嫁給你 或者(eilf) [你很努力很吃苦] 那么(then)我們可以先談男女朋友 否則 (else)洗洗,早點睡吧 果如

實驗

[root@xue ~]# vim grap.sh #!/bin/bash read -p "請輸入你的分數(0-100: " GRADEif [ $GRADE -ge 0 ] && [ $GRADE -le 100 ]thenif [ $GRADE -ge 85 ] && [ $GRADE -le 100 ]thenecho "$GRADE分,優秀" elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ]thenecho "$GRADE分,合格"elseecho “不合格”fiecho "請輸入(0-100)區間 "fi[root@xue ~]# sh grap.sh 請輸入你的分數(0-100: 111 請輸入(0-100)區域指!

case 命令

case 語句和 if…elif…else 語句一樣都是多分支條件語句,不過和多分支 if 條件語句不同的是,case 語句只能判斷一種條件關系,而 if 語句可以判斷多種條件關系。

格式 case $ake in[a-z]|[A-Z])echo "你的字母";;[0-9])echo "你的字母";;……*)echo "你的字母" esac [root@localhost ~]# vi pinghost.sh read -p "請輸入(0-100) 成績: " score case $score in8[5-9]|9[0-9]|100)echo "成績優秀";;7[0-9]|8[0-4])echo "成績良好";;6[0-9])echo "成績合格";; *)echo "成績不合格" esac

有趣小實驗

競速比賽10秒進決賽,分男子組和女子

[root@xue ~]# sh run.sh #!/bin/bash #競速比賽10秒進決賽,分男子組和女子組 read -p "請輸入你的成績" numif [ $num -ge 0 ]&&[ $num -le 10 ];thenread -p "請輸入你的性別" sexif [ $sex = 男 ];thenecho "成績合格,進入男子組"elif [ $sex = 女 ];thenecho "成績合格,進入女子組 "else echo "請輸入正確信息"fielse echo "成績不及格,你被淘汰" fi [root@xue ~]# sh run.sh 請輸入你的成績10 請輸入你的性別男 成績合格,進入男子組

總結

以上是生活随笔為你收集整理的shell编程之条件语句(文件测试,test命令,字符串和逻辑测试,if单支语句,if双支语句,if多支语句,case命令,用if写跑步小实验)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色91| 亚洲精品77777 | 精品无码成人久久久久久免费 | 欲色av| 孕期1ⅴ1高h | 看全黄大色黄大片美女人 | 国产剧情在线 | 最全aⅴ番号库网 | 日韩高清免费观看 | 亚洲精品乱码久久久久久黑人 | 九九午夜| 国产清纯在线 | 91嫩草香蕉 | 九九爱精品 | 成人久久视频 | 女女百合高h喷汁呻吟玩具 www.亚洲一区 | 天天摸天天射 | 欧美粗暴se喷水 | 久久艹精品 | 奇米成人 | 小视频在线 | 都市激情av | 成人丁香婷婷 | 日本va欧美va国产激情 | 在线高清免费观看 | 国产a视频免费观看 | 五月丁香综合激情六月久久 | www.97ai.com| 久久亚洲精品无码va白人极品 | 午夜在线观看一区 | 黄色不卡视频 | 亚洲丝袜中文字幕 | 亚洲高清在线看 | 麻豆视频一区二区三区 | 天天激情站 | 成人午夜电影网站 | 亚洲精品三级 | 91九色在线视频 | 夜色在线视频 | 成人a视频 | 亚洲黄色一区 | 国产精品久久久久野外 | 毛片毛片毛片毛片毛片毛片毛片 | 操亚洲美女 | 日韩性网站 | 欧美日韩在线免费视频 | 婷婷在线综合 | 天天操狠狠操 | 免费一级特黄 | 成人av电影在线播放 | 中国少妇av | 国产一区二区视频在线 | 在线免费观看日韩 | 中文字幕资源网 | 西野翔夫の目の前で犯在线 | 丹丹的呻吟声1一7 | 亚洲视频一二三 | 国产91边播边对白在线 | 一级免费黄色大片 | 色狠狠久久av大岛优香 | 亚洲福利影院 | 国产精品911 | 国语久久 | 亚洲天堂av一区 | 99re这里只有精品66 | 国产精品久久久久久久9999 | 污污网站在线免费观看 | 动漫裸体无遮挡 | 中文字幕一区二区三区不卡 | 小早川怜子久久精品中文字幕 | wwwa级片 | 日精品 | 亚洲自拍偷拍欧美 | 精品无码av一区二区三区四区 | av片在线免费观看 | 国语对白真实视频播放 | 爱的色放韩国电影 | 一二三区不卡 | 6699嫩草久久久精品影院 | 免费a网站 | 69av在线视频| 九色视频网站 | 成片免费观看视频大全 | 日韩欧美在线播放 | 日本一区二区三区在线免费观看 | 123超碰| 人人艹在线观看 | 欧美日韩国产成人在线 | 欧美色图在线播放 | 6080av| 黄色三级三级三级三级 | 五月婷婷六月天 | 亚洲欧美国产视频 | 韩日毛片 | 黄色片久久久久 | 草久久久久| av精选| 黄色在线视频观看 | 国产美女永久免费无遮挡 |