【需求】 編寫一個能接受兩個參數(shù)的腳本:
1)第一個參數(shù)為URL,即可下載的文件;第二個參數(shù)為目錄,即下載后保存的位置;
2)如果用戶給的目錄不存在,則提示用戶是否創(chuàng)建;如果創(chuàng)建就繼續(xù)執(zhí)行,否則直接退出腳本,返回值為1;
3)如果給的目錄存在,則下載文件;下載命令執(zhí)行結(jié)束后測試文件下載成功與否;如果成功,返回值為0,否則返回值為2;
【分析】
1)腳本要有判斷參數(shù)個數(shù)的過程,2個參數(shù)缺一不可;
2)判斷給定目錄是否存在,當(dāng)目錄不存在,則需要自動創(chuàng)建,此時是需要跟用戶交互的,所以要使用read,讓用戶提供指令,這個指令的判斷就需要考慮到多種情況。此時就需要使用while死循環(huán);
【參考腳本】
#!/bin/bash if [ $# -ne 2 ] then echo "腳本需要提供兩個參數(shù),第一個參數(shù)為下載地址,第二個參數(shù)為下載目標(biāo)目錄" exit 3 fi while : do if [ -d $2 ] then break else read -p "目錄不存在,是否要創(chuàng)建?(y|n) " yn case $yn in y|Y) mkdir -p $2 break ;; n|N) exit 1 ;; *) echo "你只能輸入y或者n" continue ;; esac fi done cd $2 wget $1 if [ $? -eq 0 ];then echo "下載成功" exit 0 else echo "下載失敗" exit2 fi
本例中的while死循環(huán)非常有用,在工作中使用場景非常多,所以請你一定要搞懂它的用法哈!
審核編輯:湯梓紅
-
參數(shù)
+關(guān)注
關(guān)注
11文章
1867瀏覽量
32885 -
腳本
+關(guān)注
關(guān)注
1文章
397瀏覽量
28364
原文標(biāo)題:巧用while死循環(huán)
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
為什么while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)==RESET)死循環(huán)?
關(guān)于死循環(huán)語句
為什么單片機(jī)的主程序是死循環(huán)
單片機(jī)的死循環(huán)有什么作用

python while循環(huán)詳解
詳解Python的for和while循環(huán)
while循環(huán)

詳解Python中的while循環(huán)
while循環(huán)用法格式
c語言在while中嵌套if循環(huán)
為什么HashMap會產(chǎn)生死循環(huán)呢?

arduino中while循環(huán)怎么跳出
為何國外工程師偏愛使用for(;;)來實現(xiàn)MCU死循環(huán)?

聊聊MCU死循環(huán),用for(;;)還是while(1)?

評論