【需求】 編寫一個能接受兩個參數的腳本:
1)第一個參數為URL,即可下載的文件;第二個參數為目錄,即下載后保存的位置;
2)如果用戶給的目錄不存在,則提示用戶是否創建;如果創建就繼續執行,否則直接退出腳本,返回值為1;
3)如果給的目錄存在,則下載文件;下載命令執行結束后測試文件下載成功與否;如果成功,返回值為0,否則返回值為2;
【分析】
1)腳本要有判斷參數個數的過程,2個參數缺一不可;
2)判斷給定目錄是否存在,當目錄不存在,則需要自動創建,此時是需要跟用戶交互的,所以要使用read,讓用戶提供指令,這個指令的判斷就需要考慮到多種情況。此時就需要使用while死循環;
【參考腳本】
#!/bin/bash if [ $# -ne 2 ] then echo "腳本需要提供兩個參數,第一個參數為下載地址,第二個參數為下載目標目錄" exit 3 fi while : do if [ -d $2 ] then break else read -p "目錄不存在,是否要創建?(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死循環非常有用,在工作中使用場景非常多,所以請你一定要搞懂它的用法哈!
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
參數
+關注
關注
11文章
1791瀏覽量
32111 -
腳本
+關注
關注
1文章
387瀏覽量
14834
原文標題:巧用while死循環
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
為什么while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)==RESET)死循環?
為啥while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)==RESET)死循環?
發表于 05-14 06:01
為什么單片機的主程序是死循環
任何一個可用程序都必然是死循環程序,這不僅僅是指單片機程序。因為任何微處理器系統一旦開機,系統都在處理內部事件和外設響應,這個過程是一個循環過程,除非關機才能結束這個死循環程序。因此,對于單片機編程必須注意以下幾點
發表于 07-15 17:38
?5311次閱讀
單片機的死循環有什么作用
單片機是可編程器件,在使用時需要編寫滿足需求的程序。其C語言程序在各個端口、配置初始化完成后,會進入一個死循環,一般用while(1){;}的形式。初始化完成后,單片機就在死循環內一遍又一遍的執行程序邏輯。復位后,就從頭開始,初
發表于 08-09 17:01
?5700次閱讀
python while循環詳解
python while循環 while 語句用于循環執行程序,即在某條件下,循環執行某段程序,以處理需要重復處理的相同任務。 其基本形式為
詳解Python的for和while循環
Python 的 for 和 while 循環是靈活并且高級的,語法自然、讀起來像偽代碼。而 Cython 也支持 for 和 while,無需修改。但由于循環通常占據程序運行時的大部
詳解Python中的while循環
說起編程語言中的循環,一般 for 循環用的時候比較多,因為相比于 while 循環,for 循環的代碼量更少。不過有時候也會用到
while循環用法格式
while循環是一種常用的循環結構,能夠按照指定條件多次重復執行一段代碼。它的一般用法格式如下: while 條件表達式:循環體 在執行
c語言在while中嵌套if循環
C語言是一種廣泛使用的面向過程編程語言,它提供了許多控制結構來幫助程序員實現復雜的邏輯和流程控制。其中,while循環和if語句是非常常見和重要的控制結構。本文將詳細介紹C語言中在while循
arduino中while循環怎么跳出
Arduino 是一款開源的硬件平臺,廣泛應用于各種物聯網和嵌入式系統項目。在 Arduino 上編寫代碼時,循環結構起到了至關重要的作用。而其中的 while 循環更是常用于需要根據特定條件重復
為何國外工程師偏愛使用for(;;)來實現MCU死循環?
一位工程師發現,國外工程師在給demo在做死循環時用的是for(;;),而不是常用的while(1)。這僅僅是個人習慣的問題,還是有更深層次的含義?
發表于 04-01 11:26
?593次閱讀
聊聊MCU死循環,用for(;;)還是while(1)?
首先,問大家一個問題:你們寫單片機程序【死循環】時,喜歡用for(;;)還是while(1)?快來為你喜歡用的【死循環】打call,評論區等你哦~一位工程師發現,國外工程師在給demo在做死循
評論