이것은 쉘 스크립트에 계산기를 작성하는 과제인데 두 가지 오류가 있어서 해결책을 찾을 수 없습니다.
echo "---------Welcome to Simple Calculator--------"
echo "p=PLUS"
echo "m=MINUS"
echo "x=MULTIPLICATION"
echo "d=DIVISION"
read -p "Enter your choice" ch
if $ch -eq p
then
echo "Enter Two Number For PLUS"
read x
read y
echo "Sonuç: $((x+y))"
elif $ch -eq m
then
echo "Enter Two Number For MINUS"
read x
read y
echo "Sonuç: $((x-y))
elif $ch -eq x
then
echo "Enter Two Number For MULTIPLICATION"
read x
read y
echo "Sonuç: $((x\*y))"
elif $ch -eq d
then
echo "Enter Two Number For DIVISION"
read x
read y
echo "scale=2;x/y" | bc
else
echo "Stopping calculator"
fi
답변1
다음과 같은 쉘 구문 검사기를 사용하십시오.https://www.shellcheck.net/따옴표 누락과 같은 보다 명확한 구문 오류를 식별하는 데 도움이 됩니다.
if ... then
그러나 이는 테스트 연산자가 누락된 절 에는 도움이 되지 않습니다 . 예는 다음과 같습니다.
if $ch -eq p
실행하려고 하면 일종의 "명령을 찾을 수 없음" 오류와 함께 실패합니다. (그래서 질문에 프로그램 실행 결과를 포함시키는 것이 도움이 됩니다.)
아마도 의미하는 바는 숫자 비교 대신 문자열 비교를 수행하기 위해 테스트 연산자 [[
.. 를 사용한다는 것입니다.]]
if [[ "$ch" == p ]]
"$ch"
마지막 으로 모든 변수가 사용되는 경우에는 큰따옴표를 사용하는 것이 가장 좋습니다 $ch
.
답변2
빼기 부분에서 하나가 누락되었습니다 "
(큰따옴표).
echo "Sonuç: $((x-y))