Shell 語法 if 、 case 、for 、 while、 until 、select 、repeat、子函式

Rocky_Ansi發表於2015-11-25
if語法 :
 
if [ expression ] 
   then
   commands
elif [ expression2 ]
   then
   commands
else
   commands
fi
 
 
 
case 語法:
 
case string1 in
   str1)
    commands;;
   str2)
    commands;;
   *)
    commans;;
esac
 
 
 
迴圈語句 for 語法: 
 
for  var in list

  do

    commands
  done
 
  在此形式時,對在list中的每一項,for語句都執行一次,list可以使包括幾個單詞的、由空格隔開的變數,也是可以直接輸入的幾個值,每執行一次迴圈,var都被賦予list中的當前值,直到最後一個為止;
 
 
第二種形式:
 
for var
do
  commands;
done 
使用這種形式時,對變數var中的 每一項,for語句都執行一次,此時,外殼程式假定變數 var
中包含外殼程式在命令列的所有位置引數;
 
 
 
 
while 迴圈語句:
 
while expression
 do 
   commands;
 done
 
 
 
until迴圈語句:
 
只是條件為假的時候,才會去執行until語句

until expression
do
  commands 
done 
 
 
 
shift 語句:
  shift 命令用來將儲存在位置引數中的當前值左移一個位置;
 
  
   $1=-r  $2=file1  $3=file3
 執行shift命令:
   shift
 你會得到:
$1 = file1 $2 = file2 
 
也可以指定每次偏移的位數:
 shift 2     // 意味著每次移動兩個位置;
 
 
while [ "$1" ]
d o
if [ "$1" = "-i" ] then
  infile = " $ 2 "
   shift 2
elif  [ "$1" = "-o" ]
   then   
   outfile = " $ 2 "
   shift 2
else
   echo "Program $0 does not recognize option $1"
fi
done
  tr a-z A-Z <$infile >$outfile      // 將小寫轉化誒大寫, 輸入的文字是;  // 
 
 
 
 
select  選擇語句:
 
 
select menuitem [in list_of_items]
do
   commands;
done
 
當select語句執行時,shell為在list_of_items 中的每一項建立一個標有數字的選單項;;
list_of_items 可以是包含幾個條目的變數, 就像是choose1 choose2,或者直接在命令中輸入的選擇項;
 
select menuitem in choice1 choice2 choice3
 
如果沒有list_of_items ,select語句則使用命令列的位置引數,就像for表示式一樣;
 
 
 
 
repeat 語句:  
  
 repeat 語句只存在於tcsh中,在pdksh 和bash中沒有相似的語句。 repeat 語句用來使一個單
一的語句執行指定的次數,erpeat語句如下:
   repeat count commands;
下面給出repeat語句的一個例子。它讀取命令列後的一串數字。並根據數字在螢幕上分行輸出句號.
 


#
foreach num ($*)
   repeat $num echo -n "."
   echo ""
end
任何repeat 語句都可以用while 或 f o r語句重寫。  repeat語句只是更加方便而已。

 
 
 
子函式: 
  外殼函式可以定義自己的函式,就像C或是其他語言一樣,使用函式的最大好處
就是使得程式更為清晰,可讀, 
fname(){
   shell commands;
}
 
 
使用函式的時候:
fname  per1 per2 per3 
 

相關文章