日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

中 Unix系列shell程序編寫( 四 )


輸入:Hello my frIEnd

$echo $var1 $var2 $var3
結(jié)果顯示:Hello my friend
$echo $var2
結(jié)果顯示:my下面用個read和case的例子結(jié)束本部分的學習:#--交互式備份,恢復程序
echo "輸入要備份文件所在目錄:c"
read WORKDIR
if [ !-d $WORKDIR ]
then
echo "Sorry,$WORKDIR is not a Directory"
exit 1
fi
cd $WORKDIR
echo "輸入選擇:"
echo _
echo "1.恢復到 $WORKDIR"
echo "2.備份 $WORKDIR"
echo "0.退出"
echo
echo "c"
read CHOICE
case "$CHOICE" in
1)echo "恢復中... ..."
cpio -i < /dev/mnt0
2)echo "備份中... ..."
ls | cpio -o > /dev/mnt0
0)exit 1
*)exit 1
esac
if [ $? -ne 0 ]
then
echo "程序運行中出現(xiàn)錯誤!"
else
echo "操作成功!"
fi

在上面代碼中,"*"定義了其他模式下不匹配時的默認操作 。

循環(huán)語句前面介紹的程序和所學的語句都是從頭到尾成一條主線下來,或是成分支結(jié)構(gòu),在日常管理Unix的過程中,經(jīng)常要重復的做一些操作,處理批量的問題,這就涉及到了循環(huán)結(jié)構(gòu),同高級語言相似,UNIX的Shell也提供了強大的循環(huán)處理語句 。Bsh語言中有三種循環(huán)語句-while循環(huán)、until循環(huán)、for循環(huán),下面通過具體的例子分別介紹這三種結(jié)構(gòu) 。While循環(huán)在while循環(huán)語句中,當某一條件為真時,執(zhí)行指定的命令 。語句的結(jié)構(gòu)如下:while command
do
command
command
… …
done示例代碼如下:#測試while循環(huán)小程序x_t=1
while [ $x_t -lt 5 ]
do
mm=` expr $x_t * $int `#注意""的作用
echo "$mm"
x_t=` expr $x_t1 ` #注意expr的用法
done
echo "THE WHILE IS END!n"程序的執(zhí)行結(jié)果如下:
1
4
9
16
THE WHILE IS END在上述程序中,當變量x_t的值小于5的時候,執(zhí)行while循環(huán)中的語句 。在第五次循環(huán)時, [ $x_t-lt5]命令返回非零值,于是程序執(zhí)行done后面的代碼 。
現(xiàn)在利用while循環(huán),可以改進我們早些時候用的備份數(shù)據(jù)的例子,當用戶指定的目錄備份完畢后,使用while循環(huán)使程序執(zhí)行一次可以備份多個用戶指定的目錄 。代碼如下:echo "歡迎使用備份小程序"ANS=Y
while [ $ANS = Y -o $ANS = y ]
do
echo _
#讀目錄名
echo "輸入要備份的目錄名:c"
read DIR
if [ ! -d $DIR ]
then
echo "$DIR不是一個目錄!"
exit 1
fi
cd $DIR
echo "請選擇:"
echo _
echo "1 恢復數(shù)據(jù)到 $DIR"
echo "2 備份$DIR的數(shù)據(jù)"
echo
echo "請選擇:c"
read CHOICE
case "$CHOICE" in
1) echo "恢復中… …"
cpio -i2) echo "備份中… …"
cpio -o >/dev/rmt0
*) echo "選擇無效"
esac
if [ $? -ne 0 ]
then
echo "cpio執(zhí)行過程中出現(xiàn)問題"
exit 2
fi
echo "繼續(xù)別的目錄嗎?(Y/y)c"
read ANS
done在程序開始,我們給變量ANS符值為Y,根據(jù)whlie的判斷條件,程序進入while循環(huán),執(zhí)行do-done中的語句,每次循環(huán)都要求用戶輸入ANS的值用來判斷是否進行下次重復執(zhí)行do-done中的語句 。如果用戶輸入的條件不滿足while語句條件,循環(huán)結(jié)束,程序執(zhí)行done后面的語句 。

推薦閱讀