#!/bin/bash
# your code goes here
echo "1.Addition 2.Subtraction 3.Multiplication 4.Division"
read n
echo "Enter the operends"
read a
read b
case $n in
"1") echo "$a $b =`expr $a \ $b`";;
"2") echo "$a-$b=`expr $a \ - $b`";;
"3") echo "$a*$b=`expr $a \ * $b`";;
"4") echo "$a/$b=`expr $a \ / $b`";;
esac
錯誤是
expr: syntax error: unexpected argument ‘ ’
當輸入為
1 1 1 1.加法 2.減法 3.乘法 4.除法 輸入運算元 1 1 = 這是輸出
uj5u.com熱心網友回復:
您遇到的第一個問題是 Windows 行尾,已dos2unix解決。
第二個問題是您不需要在exprexcept 中轉義運算子*,它應該是:
"1") echo "$a $b =`expr $a $b`";;
"2") echo "$a-$b=`expr $a - $b`";;
"3") echo "$a*$b=`expr $a \* $b`";;
"4") echo "$a/$b=`expr $a / $b`";;
現在您的腳本將運行正常:
$ ./main.sh
1.Addition 2.Subtraction 3.Multiplication 4.Division
1
Enter the operends
2
3
2 3 =5
$ ./main.sh
1.Addition 2.Subtraction 3.Multiplication 4.Division
2
Enter the operends
5
2
5-2=3
順便說一句,腳本有很多問題,您應該始終使用 shellcheck檢查您的腳本并修復它報告的所有錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/517857.html
標籤:linux重击壳Unix
