使用while循環(huán)寫成這樣格式的交互式腳本献雅,a和b都等于一個(gè)整數(shù)碉考,要求報(bào)錯(cuò)有提示:
a-b=?
a+b=?
a*b=?
a/b=?
a**b=?
a%b=?
解:首先我們分析一下題意,輸出2個(gè)整數(shù)的加 減 乘 除 冪 取余的結(jié)果挺身,要求不要報(bào)錯(cuò)可以理解為只能輸入2個(gè)整數(shù)侯谁,ready go!
while true
#循環(huán)一直為真
do
read -t 5 -p '請(qǐng)輸入2個(gè)整數(shù):' a b
#用read讀ab兩個(gè)數(shù)并提示章钾,5秒未輸入即超時(shí)
if [[ -z "$b" ]]; then
#如果$b長度為空墙贱,就代表沒有輸入就echo提示
echo '請(qǐng)輸入2個(gè)整數(shù)'
continue
#結(jié)束當(dāng)次循環(huán),繼續(xù)下一次循環(huán)
fi
expr 10 + $a + $b &>/dev/null
#用10加$a和$b結(jié)果輸出到空
if [[ $? -ne 0 ]]; then
#如果$a和$b加10的結(jié)果有問題伍玖,那么返回值就不等于0代表有問題嫩痰,提示echo
? ? echo '只能輸入2個(gè)整數(shù)'
continue
#又結(jié)束本次循環(huán)剿吻,繼續(xù)下一次循環(huán)
#到這里我們的判斷就完成了窍箍,所以只有輸入2個(gè)整數(shù)才能繼續(xù)進(jìn)行運(yùn)算
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
腳本復(fù)制粘貼即可使用?
可以看到已經(jīng)測試成功!
[root@node1]# sh test.sh
請(qǐng)輸入2個(gè)整數(shù):1 2
a-b=-1
a+b=3
a*b=2
a/b=0
a**b=1
a%b=1
請(qǐng)輸入2個(gè)整數(shù):10 23
a-b=-13
a+b=33
a*b=230
a/b=0
a**b=200376420520689664
a%b=10
請(qǐng)輸入2個(gè)整數(shù):12 2只能輸入2個(gè)整數(shù)
請(qǐng)輸入2個(gè)整數(shù):
a-b=10
a+b=14
a*b=24
a/b=6
a**b=144
a%b=0
請(qǐng)輸入2個(gè)整數(shù):^C
[root@node1]#