這是哪里錯了,求指教
1 #!/bin/bash
? 2?
? 3 ##計算器腳本
? 4?
? 5 read -p "Please input a number:" num1
? 6 read -p "Please input a yunsuanfu:" ope
? 7 read -p "PLease input another number:" num2
? 8 ##先輸入運算符和要運算的數字
? 9?
?
10 if [ !-z "$num1" -a !-z "$num2" -a -z "$ope" ]
?11? ? ? ? ?then
?12? ? ? ? ?##判斷是否有輸入數字和運算符
?13? ? ? ? ?test1=$(echo $num1 | sed 's/[0-9]//g')
?14? ? ? ? ?test2=$(echo $num2 | sed 's/[0-9]//g')
?15? ? ? ? ?##判斷輸入的num1和num2是否為數字,運算符是否正確
?16? ? ? ? ? ? ? ? ?if [ -z "$test1" -a -z "$test2" -a -z "$ope" ]
?17? ? ? ? ? ? ? ? ? ? ? ? ?then
?18? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?if [ "$ope" == "+" ];then
?19? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sum=$(( $num1 + $num2 ))
?20? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?elif [ "$ope" == "-" ];then
?21? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sum=$(( $num1 - $num2 ))
?22? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?elif [ "$ope" == "*" ];then
?23? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sum=$(( $num1 * $num2 ))
?24? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?elif [ "$ope" == "/" ];then
?25? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sum=$(( $num1 / $num2 ))
?26? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?else
?27? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?echo "please input a true ope"
?28? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?exit 10
?29? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#判斷是否是正確的運算符
?30? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?fi
?31? ? ? ? ? ? ? ? ?else
?32? ? ? ? ? ? ? ? ? ? ? ? ?echo "Please input a true num"
?33? ? ? ? ? ? ? ? ? ? ? ? ?exit 11
?34? ? ? ? ? ? ? ? ?fi
?35? ? ? ? ?else
?36? ? ? ? ? ? ? ? ?echo "qing shu ru nei rong"
?37? ? ? ? ? ? ? ? ?exit 12
?38 fi
?39?
?40 echo "$num1 $ope $num2 = $sum"
test.sh: line 10: [: too many arguments
qing shu ru nei rong
2019-05-26
??if ["$ope"=="+"];then? 這里的應該這樣 if [? "$ope"? ==? "+"? ] ;then
明白了嗎,2個等號旁邊要有空格,2個中括號跟雙引號的內容之間也要有空格,目前發現這個問題?
2019-08-25
報錯中已經說得非常清楚:line10: [: too many arguments:意思是:第10行參數太多。因為腳本:?if [ !-z "$num1" -a !-z "$num2" -a -z "$ope" ]中:!與后面的-z之間都沒有空格。
2019-05-27
上面代碼的錯誤還有第16行的-a -z "ope" 需要刪除,錯誤原因可能是輸入ope的值不在上一層if中?