歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> 介紹幾個shell程序設計小知識之三

介紹幾個shell程序設計小知識之三

日期:2017/2/27 9:26:14   编辑:SHELL編程
  一、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




Copyright © Linux教程網 All Rights Reserved