我想製作一個計算器。用戶輸入數字1,選擇並操作,輸入數字2,然後選擇另一個操作或顯示答案。製作一個可以循環的計算器 - Bash
例如。 1 + 1 = 或 1 + 1 + 2 + 1 =
這兩個都應該是可能的。
read -p "what's the first number? " n1
PS3="what's the operation? "
select ans in add subtract multiply divide equals; do
case $ans in
add) op='+' ; break ;;
subtract) op='-' ; break ;;
multiply) op='*' ; break ;;
divide) op='/' ; break ;;
*) echo "invalid response" ;;
esac
done
read -p "what's the second number? " n2
ans=$(echo "$n1 $op $n2" | bc -l)
printf "%s %s %s = %s\n\n" "$n1" "$op" "$n2" "$ans"
exit 0
這是我至今寫的,但我不能工作,如何使人們有可能讓用戶選擇「等於」或環回輪進入另一個操作。任何想法,我可以做我的代碼在這裏?我一整天都被困住了。
- 我不希望用戶輸入方程本身,我希望他們從列表中選擇。
這個腳本根本不能爲我工作。您是否複製/粘貼了正確的版本? – Avio
read -p「第一個數字是什麼?」n1 PS3 =「操作是什麼?」 select ans in加上減去乘除等於; case $ ans in add)op ='+';打破;; 減去)op =' - ';打破;; multiply)op ='*';打破;; divide)op ='/';打破;; \t \t等於)op = *)echo「invalid response」;; ESAC \t做 讀-p 「什麼是第二個號碼是多少?」 N2 ANS = $(回聲 「$ $ N1運$ N2」 | BC-1) 的printf「%s%s%S =%S \ n \ n「」$ n1「」$ op「」$ n2「」$ ans「 退出0 –
是@svnpenn是正確的複製... –