輸入: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后面的語句 。
推薦閱讀
- Win10中將圖標小盾牌去除具體操作方法
- UNIX 中如何批量殺掉進程?
- 四法防治果園天牛
- 榮耀暢玩8a中將飛行模式打開具體方法介紹
- win10系統(tǒng)中導入字體具體方法介紹
- 元代的中都是現(xiàn)在的哪個城市
- 知米背單詞中將鎖屏復習單詞關(guān)閉具體操作方法
- win10系統(tǒng)中出現(xiàn)診斷策略服務未運行具體處理方法
- 中興Axon M新品發(fā)布會時間、直播地址
- 中等生怎樣選科賦分高
