瀏覽量:32次
1shell中的if語(yǔ)句語(yǔ)法 我發(fā)現(xiàn)有時(shí)候等于是用eq表示,有時(shí)候用=標(biāo)準(zhǔn),不明白==============eq數(shù)值=字符串?。。。剑剑剑剑剑剑剑剑剑剑剑剑剑娇梢钥纯磎an test==============流程控制
if 表達(dá)式 如果條件為真則執(zhí)行then后面的部分:if ....then....elif ....then....else....fi大多數(shù)情況下,可以使用測(cè)試命令來(lái)對(duì)條件進(jìn)行測(cè)試。比如可以比較字符串、判斷文件是否存在及是否可讀等等…通常用 [ ] 來(lái)表示條件測(cè)試。注意這里的空格很重要。要確保方括號(hào)的空格。[ -f somefile ] :判斷是否是一個(gè)文件[ -x /bin/ls ] :判斷/bin/ls是否存在并有可執(zhí)行權(quán)限[ -n $var ] :判斷$var變量是否有值[ $a = $b ] :判斷$a和$b是否相等==============今天看到一本書(shū),上面說(shuō)if語(yǔ)句中如果用=,<,>等比較符號(hào)是,應(yīng)該寫(xiě)在括號(hào)中,如果是用-eq,-lt等就應(yīng)該寫(xiě)在[ ]中,是這樣嘛??==============這應(yīng)該是針對(duì) ksh/bash 的,因?yàn)樗鼈兌紝?duì)原來(lái)的sh進(jìn)行了擴(kuò)展,可以直接使用< > = 來(lái)進(jìn)行數(shù)值判斷,但是就象你提到的,要寫(xiě)在 (( )) 中。==============if 之后的判斷是test語(yǔ)法,而if [表達(dá)式] 和if test 表達(dá)式是等價(jià)的++++++++++++++++++++++++++++++++++++test命令用法:1)判斷表達(dá)式if test (表達(dá)式為真)if test !表達(dá)式為假test 表達(dá)式1 –a 表達(dá)式2 兩個(gè)表達(dá)式都為真test 表達(dá)式1 –o 表達(dá)式2 兩個(gè)表達(dá)式有一個(gè)為真
2)判斷字符串test –n 字符串 字符串的長(zhǎng)度非零test –z 字符串 字符串的長(zhǎng)度為零test 字符串1=字符串2 字符串相等test 字符串1!=字符串2 字符串不等
3)判斷整數(shù)test 整數(shù)1 –eq 整數(shù)2 整數(shù)相等test 整數(shù)1 –ge 整數(shù)2 整數(shù)1大于等于整數(shù)2test 整數(shù)1 –gt 整數(shù)2 整數(shù)1大于整數(shù)2test 整數(shù)1 –le 整數(shù)2 整數(shù)1小于等于整數(shù)2test 整數(shù)1 –lt 整數(shù)2 整數(shù)1小于整數(shù)2test 整數(shù)1 –ne 整數(shù)2 整數(shù)1不等于整數(shù)2
4)判斷文件test File1 –ef File2 兩個(gè)文件具有同樣的設(shè)備號(hào)和i結(jié)點(diǎn)號(hào)test File1 –nt File2 文件1比文件2 新test File1 –ot File2 文件1比文件2 舊test –b File 文件存在并且是塊設(shè)備文件test –c File 文件存在并且是字符設(shè)備文件test –d File 文件存在并且是目錄test –e File 文件存在test –f File 文件存在并且是正規(guī)文件test –g File 文件存在并且是設(shè)置了組IDtest –G File 文件存在并且屬于有效組IDtest –h File 文件存在并且是一個(gè)符號(hào)鏈接(同-L)test –k File 文件存在并且設(shè)置了sticky位test –b File 文件存在并且是塊設(shè)備文件test –L File 文件存在并且是一個(gè)符號(hào)鏈接(同-h)test –o File 文件存在并且屬于有效用戶(hù)IDtest –p File 文件存在并且是一個(gè)命名管道test –r File 文件存在并且可讀test –s File 文件存在并且是一個(gè)套接字test –t FD 文件描述符是在一個(gè)終端打開(kāi)的轉(zhuǎn)載請(qǐng)注明文章來(lái)
命令行內(nèi)循環(huán):a=0 && while [ $a -lt 10 ] ; do echo $a && a=`expr $a + 1` ; done
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類(lèi)稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類(lèi)稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請(qǐng)您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們?cè)诖_認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776