계산기를 만들려고합니다. 사용자는 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
읽기 -p "첫 번째 숫자는 무엇입니까?"n1 PS3 = "작동은 무엇입니까?" ans 선택 추가 빼기 곱하기 나누기 같음; do case $ ans in add) op = '+'; 휴식 ;; 빼기) op = '-'; 휴식 ;; 곱하기) op = '*'; 휴식 ;; 나누기) op = '/'; 휴식 ;; \t \t 같음) op = *) "잘못된 응답";; 의 printf "%의 %의 %의 = % s의 \ 없음 | ESAC \t 가?"무슨 일이 두 번째 숫자이다 "N2 ANS = $ (기원전 -l 에코"$ N1 $ 연산 $의 N2 ") -p 읽어 수행 \ n ""$ n1 ""$ ns ""$ ns ""$ ans " exit 0 –
그래, @svnpenn은 똑같은 복제 ... –