真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

四天精通shell編程(三)

四條件測(cè)試

成都創(chuàng)新互聯(lián)長期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為西豐企業(yè)提供專業(yè)的網(wǎng)站制作、成都做網(wǎng)站,西豐網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。


test測(cè)試條件 測(cè)試內(nèi)容

[測(cè)試條件 測(cè)試內(nèi)容] #用的更為廣泛


1測(cè)試文件類型


test -e文件名測(cè)試文件是否存在,存在為真

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


附:test測(cè)試結(jié)果并不顯示,需用echo$?來顯示test的返回值

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

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

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

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

test -b文件名判斷是否為塊設(shè)備文件

test -c文件名字符設(shè)備文件


2測(cè)試文件權(quán)限


test -r文件名判斷是否有可讀權(quán)限

test -w文件名可寫

test -x文件名執(zhí)行

test -s文件名判斷是否為非空白,有內(nèi)容為真


3兩個(gè)文檔比較


[file1 -nt file2 ] file1是否比file2新

[file1 -ot file2 ] file1是否比file2舊

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


4兩個(gè)數(shù)值之間判斷

[n1 -eq n2 ] n1和n2是否相等#推薦使用下面的==符號(hào)來判斷

測(cè)試:aa=123;bb=123

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

[n1 -ne n2 ] n1和n2是否不等

[n1 -gt n2 ] n1大于n2

[n1 -lt n2 ] n1小于n2

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

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



5判斷字符串


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


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

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

附:aa=abc

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


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


6多重判斷


-a邏輯與

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

-o邏輯或

!邏輯非


例子7:判斷輸入的文件類型和文件權(quán)限注:一定要練習(xí)

#!/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

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


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是否有可讀權(quán)限

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

#-w是否可寫

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

#-x是否可執(zhí)行


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

#打印文件名

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

#打印文件類型

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

#打印文件權(quán)限


五流程控制


1 if語句


1)if條件語句--單分支。當(dāng)“條件成立”時(shí)執(zhí)行相應(yīng)的操作

格式:

if條件測(cè)試命令

then命令序列

fi


例子8:

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

#!/bin/bash

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

#:df命令:顯示分區(qū)使用狀況

if [ $RATE -gt 80 ]

then

echo"Warning,/boot DISK is full!"

fi


2)if條件語句--雙分支。當(dāng)“條件成立”、“條件不成立”時(shí)執(zhí)行不同操作

格式:

if條件測(cè)試命令

then命令序列1

else命令序列2

fi


例子9:

判斷httpd服務(wù)是否啟動(dòng),如果沒有啟動(dòng)則啟動(dòng)

#!/bin/bash


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

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


附:netstat-tlun用來查看系統(tǒng)啟動(dòng)的所有端口

psaux用來打印apache所有的進(jìn)程

grep-v grep把包含有g(shù)rep的行取反

if [ -z "$http" ]

then

echo"httpd meiyou qidong!"

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

else

echo"httpd runing"

fi

附:停掉Apache:servicehttpd stop

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

格式:

if條件測(cè)試命令1 ; then

命令序列1

elif條件測(cè)試命令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













本文標(biāo)題:四天精通shell編程(三)
鏈接地址:http://weahome.cn/article/jsppsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部