if語法 :
if [ expression ]
then
commands
elif [ expression2 ]
then
commands
else
commands
fi
then
commands
elif [ expression2 ]
then
commands
else
commands
fi
case 語法:
case string1 in
str1)
commands;;
str2)
commands;;
*)
commans;;
esac
str1)
commands;;
str2)
commands;;
*)
commans;;
esac
迴圈語句 for 語法:
for var in list
do
commands
done
在此形式時,對在list中的每一項,for語句都執行一次,list可以使包括幾個單詞的、由空格隔開的變數,也是可以直接輸入的幾個值,每執行一次迴圈,var都被賦予list中的當前值,直到最後一個為止;
第二種形式:
for var
do
do
commands;
done
使用這種形式時,對變數var中的 每一項,for語句都執行一次,此時,外殼程式假定變數 var
中包含外殼程式在命令列的所有位置引數;
while 迴圈語句:
while expression
do
do
commands;
done
until迴圈語句:
只是條件為假的時候,才會去執行until語句
until expression
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
d o
if [ "$1" = "-i" ] then
infile = " $ 2 "
shift 2
elif [ "$1" = "-o" ]
then
outfile = " $ 2 "
shift 2
else
shift 2
else
echo "Program $0 does not recognize option $1"
fi
done
tr a-z A-Z <$infile >$outfile // 將小寫轉化誒大寫, 輸入的文字是; //
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