欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

shell腳本編程之if語(yǔ)句學(xué)習(xí)筆記

 更新時(shí)間:2014年09月11日 10:51:26   投稿:junjie  
這篇文章主要介紹了shell腳本編程之if語(yǔ)句學(xué)習(xí)筆記,本文先是給出了程序代碼,然后詳細(xì)的分解了第句代碼的作用,需要的朋友可以參考下

我不是研究linux下的東西的,所以這里只對(duì)shell腳本的用法做一個(gè)介紹,把我自己在使用過(guò)程中出現(xiàn)的問(wèn)題記錄下來(lái),同時(shí)也是寫(xiě)下一些shell腳本語(yǔ)法的規(guī)則,方便以后查看。先來(lái)學(xué)習(xí)一下條件語(yǔ)句if的用法,通過(guò)這一個(gè)簡(jiǎn)單的語(yǔ)法來(lái)說(shuō)明一下shell腳本編程時(shí)候的東西。

復(fù)制代碼 代碼如下:

#!/bin/sh
echo "please input text1"
read text1
echo "please input text2"
read text2
#判斷字符串等或者是不等只有一個(gè)等號(hào)
if test $text1 = $text2
then
echo "text1 equals text2"
else
echo "text1 not equals text2"
fi

#判斷字符串是否為空,這里的判斷記得在$text1倆邊加上雙引號(hào)
if [ -z "$text1" ]
then
echo "text1 is null"
fi
if [ -n "$text1" ];then
echo "text1 is not null"
fi

#算術(shù)比較 text1和text2中的內(nèi)容只能是數(shù)字
if [ "$text1" -eq "$text2" ];then
echo "equal"
elif [ "$text1" -gt "$text2" ];then
echo "great"
elif [ "$text1" -le "$text2" ];then
echo "little and equals"
fi

echo "input a file or not file"
read file
#判斷是文件還是目錄
if [ -d $file ];then
echo "$file is a directory"
elif [ -f $file ];then
echo "$file is a file"
fi
#判斷文件的大小是否為空
if [ -s $file ];then
#echo -n是為了去掉換行符
echo -n "$file'size is not null"
fi

#判斷文件的讀寫(xiě)權(quán)限
if [ -f "$file" ];then
 if [ -r "$file" ];then
 echo "read"
 fi
 if [ -w "$file" ];then
 echo "write"
 fi
 if [ -x "$file" ];then
 echo "exe"
 fi
fi

exit 0

我們一點(diǎn)點(diǎn)的來(lái)分析一下這個(gè)程序,第一行是一個(gè)特殊的注釋語(yǔ)句,在linux的shell下,使用#作為注釋,所以如果你想注釋東西就要以#開(kāi)頭,第一行的注釋語(yǔ)句是告訴shell執(zhí)行這個(gè)shell腳本的時(shí)候使用的是/bin/sh這個(gè)目錄下的shell。接著使用echo命令來(lái)輸出一行語(yǔ)句,echo后邊的字符串最好用雙引號(hào)引起來(lái),以后凡是字符串最好都用雙引號(hào)引起來(lái),這可以避免一些很難查找到的bug,echo后邊如何加上-n選項(xiàng),則代表語(yǔ)句輸出以后是不換行的。接著是read命令,這個(gè)命令的作用是讀取輸入到變量text1中,在shell腳本中,我們使用變量的時(shí)候不需要預(yù)先定義,用的時(shí)候直接這樣用就可以了。接下來(lái)就說(shuō)到了我們本篇博客要說(shuō)明的if條件語(yǔ)句了,這個(gè)if的語(yǔ)法是if..then..elif..then..else..fi具體的看看代碼,代碼中已經(jīng)有了體現(xiàn),在c語(yǔ)言中我們使用if來(lái)判斷的時(shí)候都是將判斷語(yǔ)句寫(xiě)在括號(hào)中的,這里的判斷是使用test命令來(lái)判斷,你把它理解為在小括號(hào)中一樣就可以了,test的判斷可以是對(duì)字符串的判斷,對(duì)數(shù)值的判斷,對(duì)文件目錄等的判斷,這個(gè)test可以用[符號(hào)來(lái)代替,這就是在程序的后邊沒(méi)有使用test而是使用[號(hào)的原因,[的判斷最后要以]號(hào)結(jié)尾,判斷語(yǔ)句寫(xiě)在中括號(hào)中,因?yàn)閇代表的就是test,所以[和后邊的判斷條件有空格。接下來(lái)說(shuō)回來(lái)test可以判斷的類型,代碼中顯示對(duì)字符串的判斷,注意我們判斷text1和text2相等的時(shí)候用的是一個(gè)等號(hào),大家c語(yǔ)言習(xí)慣了不要忘記是一個(gè)等號(hào),對(duì)變量的取值采用的是在變量前邊加了$符號(hào),這樣就獲得了變量的值了。同時(shí)也要加上雙引號(hào),你不加也許發(fā)現(xiàn)不了錯(cuò)誤,但是如果輸入是空,也就是直接敲下了回車鍵,這個(gè)時(shí)候判斷就成了if test = text2,test后邊沒(méi)有東西當(dāng)然不對(duì)了,如果加上雙引號(hào)是這樣的if test "" = text2,這樣就不會(huì)出錯(cuò)了。其他的關(guān)于一些選項(xiàng),例如-z、-n、-gt、-f、-r等等這些東西每一個(gè)都是英文單詞的簡(jiǎn)寫(xiě),很簡(jiǎn)單略過(guò)!接下來(lái)運(yùn)行shell程序,使用chmod +x命令賦予可執(zhí)行的權(quán)限,然后運(yùn)行,一切ok!

相關(guān)文章

最新評(píng)論