亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

這是哪里錯了,求指教

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


正在回答

3 回答

??if ["$ope"=="+"];then? 這里的應該這樣 if [? "$ope"? ==? "+"? ] ;then

明白了嗎,2個等號旁邊要有空格,2個中括號跟雙引號的內容之間也要有空格,目前發現這個問題?

0 回復 有任何疑惑可以回復我~
#1

阿強0519 提問者

有空格還是報同樣的錯
2019-05-27 回復 有任何疑惑可以回復我~
#2

阿強0519 提問者

原因是感嘆號和后面的-z之間要有空格
2019-05-27 回復 有任何疑惑可以回復我~

報錯中已經說得非常清楚:line10: [: too many arguments:意思是:第10行參數太多。因為腳本:?if [ !-z "$num1" -a !-z "$num2" -a -z "$ope" ]中:!與后面的-z之間都沒有空格。

1 回復 有任何疑惑可以回復我~

上面代碼的錯誤還有第16行的-a -z "ope" 需要刪除,錯誤原因可能是輸入ope的值不在上一層if中?

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

這是哪里錯了,求指教

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號