亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

Shell常見知識(3)
2007-03-09   ChinaITLab

一、if 條件語句 

格式:

if 條件表達式

then #當條件為真時執行以下語句

命令列表

else #為假時執行以下語句

命令列表

fi

if 語句也可以嵌套使用

if 條件表達式1

then

if 條件表達式2

then

命令列表

else

if 條件表達式3

then

命令列表

else

命令列表

fi

fi

else

命令列表

fi

你可以進行多層嵌套 一個if語句一定要跟一個fi 表示該層條件結束否則會造成語法錯誤結合前面講的 舉例如下:

這里先講一個條件語句中用到的命令test 表示測試test后面的條件是否為真

if test -f "$1"

then

lpr $1

else

if test -d "$1"

then

cd $1

lpr $1

else

echo "$1不是文件或目錄"

fi

fi

以上的例子還可以改成如下所示

if test -f "$1"

then

lpr $1

elif test -d "$1" #elif 同else if

then

(cd $1;lpr $1)

else

echo "$1不是文件或目錄"

fi??????

以上的例子不知您是否看懂是什么意思嗎?

假如我們現在將這個例子保存為prfile

chmod +x prfile

執行剛才的程序

./prfile aaa

這個例子是檢查你的輸入的參數是否是一個文件 如果是就打印 如果是一個目錄 先轉目錄再打印 如果即不是文件也不是目錄給出提示

二、多重條件測試語句case

格式:

case 字串 in

模式) 命令列表;;

模式) 命令列表;;

....

esac

多重條件語句是以case 開始以esac結束 中間可以有多個條件列表 功能是測試字串和和里面的模式有沒有匹配的,有就執行里面的命令列表 模式也可以是*號 表示任意字串,每個模式里面的最后要心;;雙引號結束,否則會發生語法錯誤。

現舉例如下:

case $1 in

*.c)

cc $1

;;

*.txt)

lpr $1

;;

*)

echo "未知的類型"

esac

假如將以上內容保存在文件abc中

chmod +x abc

執行 ./abc a.c   將會對文件a.c進行編譯

執行 ./abc readme.txt 將會把文件通過打印機

假如我將以上內容改一下,你是否會知道它的執行結果?

case $1 in

*)

cc $1

;;

*.txt)

lpr $1

;;

*.c)

echo "未知的類型"

esac

熱詞搜索:

上一篇:Shell常見知識(2)
下一篇:Shell常見知識(4)

分享到: 收藏