亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

四天精通shell編程(三)

發布時間:2020-07-22 12:14:32 來源:網絡 閱讀:253 作者:280441589 欄目:系統運維

條件測試


test 測試條件 測試內容

[測試條件 測試內容] #用的更為廣泛


1 測試文件類型


test -e 文件名 測試文件是否存在,存在為真

[ -e 文件名 ] 注意:[]的左右兩側必須加空格!


附:test測試結果并不顯示,需用echo$? 來顯示test的返回值

返回0語句正確,非0表示不正確。

拓展:test-e test.txt && echo Yes || echo No

test -f 文件名 判斷是否是普通文件#如果是文件的話,返回0,若是目錄返回非0

test -d 文件名 判斷是否為目錄

test -b 文件名 判斷是否為塊設備文件

test -c 文件名 字符設備文件


2 測試文件權限


test -r 文件名 判斷是否有可讀權限

test -w 文件名 可寫

test -x 文件名 執行

test -s 文件名 判斷是否為非空白,有內容為真


3 兩個文檔比較


[file1 -nt file2 ] file1是否比file2

[file1 -ot file2 ] file1是否比file2

[file1 -ef file2 ] file1file2是否是鏈接文件,是否是快捷方式,軟鏈接


4 兩個數值之間判斷

[n1 -eq n2 ] n1n2是否相等#推薦使用下面的 ==符號來判斷

測試:aa=123;bb=123

[$aa -eq $bb ] && echo Yes || echo no

[n1 -ne n2 ] n1n2是否不等

[n1 -gt n2 ] n1大于n2

[n1 -lt n2 ] n1小于n2

[n1 -ge n2 ] n1大于等于n2

[n1 -le n2 ] n1小于等于n2



5 判斷字符串


[-z 字符串] 判斷字符串是否為空,變量值沒有內容/為空則是真


[字符串1 == 字符串2] 判斷字串1是否與字串2相等#判斷采用的是字符串型

[$aa == $bb ] && echo 1 || echo 2

附:aa=abc

[“$aa” == “abc” ] && echo Yes || echo No #為什么把兩個“”去掉測試也成功


[字符串1 != 字符串2] 判斷字串是否不等


6 多重判斷


-a 邏輯與

[-z $file -a -e $file ]

-o邏輯或

! 邏輯非


例子7:判斷輸入的文件類型和文件權限注:一定要練習

#!/bin/bash


echo-e "nide wenjian shifou cunzai? wenjian quanxian shi shenme?\n\n"


read-p "please input filename:" -t 30 filename


test-z $filename && echo "please input filename!!" &&exit 1

#判斷字符串是否為空,如果為空,打印錯誤信息,并且退出程序!


test! -e $filename && echo "wenjian bucunzai!" &&exit 2

#-e 變量 判斷文件是否存在,存在為真 ! 邏輯非


test-f $filename && filetype=putong

#-f 是否為普通文件

test-d $filename && filetype=mulu

#-d 是否為目錄

test-r $filename && perm="read"

#-r是否有可讀權限

test-w $filename && perm="$perm write"

#-w 是否可寫

test-x $filename && perm="$perm executable"

#-x 是否可執行


echo-e "the filename is : $filename \n"

#打印文件名

echo-e "filetype is : $filetype \n"

#打印文件類型

echo-e "permision is : $perm \n"

#打印文件權限


流程控制


1 if語句


1if條件語句--單分支。當“條件成立”時執行相應的操作

格式:

if 條件測試命令

then 命令序列

fi


例子8

如果/boot分區的空間使用超過80%,則輸出警告

#!/bin/bash

RATE=`df-hT | grep "/boot" | awk '{print $6}' | cut -d "%"-f1 ` #:反引號!!!

#:df命令:顯示分區使用狀況

if [ $RATE -gt 80 ]

then

echo"Warning,/boot DISK is full!"

fi


2if條件語句--雙分支。當“條件成立”、“條件不成立”時執行不同操作

格式:

if 條件測試命令

then 命令序列1

else 命令序列2

fi


例子9

判斷httpd服務是否啟動,如果沒有啟動則啟動

#!/bin/bash


http=`netstat-tlun | awk '{print $4 "\n"}' | grep ":80$"`

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


附:netstat-tlun 用來查看系統啟動的所有端口

psaux 用來打印apache所有的進程

grep-v grep 把包含有grep的行取反

if [ -z "$http" ]

then

echo"httpd meiyou qidong!"

/etc/rc.d/init.d/httpdstart

else

echo"httpd runing"

fi

附:停掉Apacheservicehttpd stop

3) if條件語句--多分支

格式:

if 條件測試命令1 ; then

命令序列1

elif 條件測試命令2 ; then

命令序列2

elif ...

else

命令序列n

fi


例子10

#判斷輸入的字符

#!/bin/bash

echo"if you want to beijing ,please input 1"

echo"if you want to shanghai ,please input 2"

echo"if you want to chengdu ,please input 3"



read-p "please input a num: " -t 30 num


if[ "$num" == "1" ]

then

echo"beijing!!!"

elif[ "$num" == "2" ]

then

echo"shanghai!!!!"

elif[ "$num" == "3" ]

then

echo"chengdu!!!"

else

echo"error,please input 1 or 2 or 3."

fi












向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

庆元县| 横峰县| 乌海市| 吴旗县| 河曲县| 巴林左旗| 黄大仙区| 肃宁县| 香格里拉县| 普安县| 来凤县| 鄂温| 九龙县| 淮北市| 北辰区| 贵港市| 扶余县| 东乡族自治县| 丽江市| 高尔夫| 西乡县| 法库县| 襄城县| 安宁市| 聂荣县| 彰化县| 哈巴河县| 肇源县| 高邑县| 闻喜县| 长岭县| 常山县| 文化| 鸡泽县| 泸定县| 汝阳县| 依兰县| 杨浦区| 疏附县| 新密市| 镇安县|