您好,登錄后才能下訂單哦!
在shell里使用while循環寫成這樣格式的交互式腳本,a和b都等于一個整數,要求報錯有提示:
a-b=?
a+b=?
a*b=?
a/b=?
a**b=?
a%b=?
解:首先我們分析一下題意,輸出2個整數的加 減 乘 除 冪 取余的結果,要求不要報錯可以理解為只能輸入2個整數,ready go!
while true
#循環一直為真
do
read -t 5 -p '請輸入2個整數:' a b
#用read讀ab兩個數并提示,5秒未輸入即超時
if [[ -z "$b" ]]; then
#如果$b長度為空,就代表沒有輸入就echo提示
echo '請輸入2個整數'
continue
#結束當次循環,繼續下一次循環
fi
expr 10 + $a + $b &>/dev/null
#用10加$a和$b結果輸出到空
if [[ $? -ne 0 ]]; then
#如果$a和$b加10的結果有問題,那么返回值就不等于0代表有問題,提示echo
echo '只能輸入2個整數'
continue
#又結束本次循環,繼續下一次循環
#到這里我們的判斷就完成了,所以只有輸入2個整數才能繼續進行運算
fi
echo "a-b=$(($a-$b))"
echo "a+b=$(($a+$b))"
echo "a*b=$(($a*$b))"
echo "a/b=$(($a/$b))"
echo "a**b=$(($a**$b))"
echo "a%b=$(($a%$b))"
done
腳本復制粘貼即可使用
[root@node1]# sh test.sh
請輸入2個整數:1 2
a-b=-1
a+b=3
a*b=2
a/b=0
a**b=1
a%b=1
請輸入2個整數:10 23
a-b=-13
a+b=33
a*b=230
a/b=0
a**b=200376420520689664
a%b=10
請輸入2個整數:12 2只能輸入2個整數
請輸入2個整數:
a-b=10
a+b=14
a*b=24
a/b=6
a**b=144
a%b=0
請輸入2個整數:^C
[root@node1]#
可以看到已經測試成功!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。