課程
/運維&測試
/Linux
/shell編程之條件判斷與流程控制
運行時一直提示請輸入數字
2019-07-29
源自:shell編程之條件判斷與流程控制 4-2
正在回答
這樣看代碼看不到你說的問題,你應該把報錯也貼上的。
暫時看見有幾個問題:
-n 與“num1” 中間要有空格。
== 兩邊要有空格
[ xxx ]? 方括號里的判斷要跟兩個方括號之間有空格
除法那行不要帶雙引號
最后一行只要在兩邊加雙引號就夠了,不要寫那么多雙引號
可能還有漏看的。。。
下面是我寫的拆解過if結構的
#!/bin/bash #?例子:計算器 read?-t?30?-p?"input?num1:"?num1 read?-t?30?-p?"input?num2:"?num2 read?-t?30?-p?"input?ope(+-*/):"?ope if?[?-n?"$num1"?-a??-n?"$num2"?-a?-n?"$ope"?] then ????test1=$(echo?$num1?|?sed?'s/[0-9]//g') ????test2=$(echo?$num2?|?sed?'s/[0-9]//g') ????if?[?-z?"$test1"?-a?-z?"$test2"?]???????? ????then ????????echo?"check?ok?"???????? ????else???????????????? ????????echo?"error?input"???????????????? ????????exit?10???????? ????fi else???????? ????echo?"num1,num2,ope?must?be?not?null"???????? ????exit?11 fi #?開始計算 if?[?"$ope"?==?"+"?] then???????? ????res=$(($num1+$num2)) elif?[?"$ope"?==?"-"?] then???????? ????res=$(($num1-$num2)) elif?[?"$ope"?==?"*"?] then???????? ????res=$(($num1*$num2)) elif?[?"$ope"?==?"/"?] then???????? ????res=$(($num1/$num2)) else???????? ????echo?"ope?error" fi echo?"res:$res"
舉報
Linux shell實用案例學習,一定會使你Linux運維能力再次提高
3 回答這是哪里錯了,求指教
2 回答請問這里有錯嗎? 為什么輸入幾個人用戶,只能建一個。
2 回答為什么我的這個出問題判斷錯誤的?
1 回答代碼不知哪里有問題
2 回答求大神指教,哪里有問題!
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-07-30
這樣看代碼看不到你說的問題,你應該把報錯也貼上的。
暫時看見有幾個問題:
-n 與“num1” 中間要有空格。
== 兩邊要有空格
[ xxx ]? 方括號里的判斷要跟兩個方括號之間有空格
除法那行不要帶雙引號
最后一行只要在兩邊加雙引號就夠了,不要寫那么多雙引號
可能還有漏看的。。。
下面是我寫的拆解過if結構的