쉘 스크립팅-값을 전달하지 않는 쉘 변수

루크 맥커천
#!/bin/bash

while true
do
 if [[ $# -eq 0 ]] ; then

    result=$((operand1+operand2))
    result=$((operand1-operand2))
    result=$((operand1*operand2))

     if [[ $result ]] ; then 
        operand1=$result 
        echo "operand 1 is: $result" 
        echo "" 
     else 
        echo Enter operand1 value: 
        read operand1 

     fi

     # Offer choices
     echo 1. Addition
     echo 2. Subtraction
     echo 3. Multiplication
     echo 4. Division
     echo 5. Exit


     echo Enter your choice:
     read choice


     if [[ $choice != 1 && $choice != 2 && $choice != 3 && $choice != 4 && $choice != 5 ]] ; then
         echo Sorry not a valid operator - please try again 
         echo Enter your choice:
         read choice

     fi

     echo Enter operand2 value:
     read operand2

     # get operands and start computing based on the user's choice
     if [[ $choice -eq 1 ]] ; then

         echo ----------------------------------------
         echo Addition of $operand1 and $operand2 is $((operand1+operand2))
         echo ----------------------------------------
         echo

     elif [[ $choice -eq 2 ]] ; then

         echo ----------------------------------------
         echo Subtraction of $operand1 and $operand2 is $((operand1-operand2))
         echo ----------------------------------------
         echo
     elif [[ $choice -eq 3 ]] ; then

         echo ----------------------------------------
         echo Multiplication of $operand1 and $operand2 is $((operand1*operand2))
         echo ----------------------------------------
         echo
     elif [[ $choice -eq 4 && operand2 -eq 0 ]] ; then
         echo Can not divide by 0 please try again 
         echo Please enter operand2
         read operand2
         echo ----------------------------------------
         echo Division of $operand1 and $operand2 is $((operand1/operand2))
         echo ----------------------------------------
         echo

      elif [[ $choice -eq 4 && operand2 -ne 0 ]] ; then
         echo ----------------------------------------
         echo Division of $operand1 and $operand2 is $((operand1/operand2))
         echo ----------------------------------------
         echo

     elif [[ $choice -eq 5 ]] ; then
         exit

     else
         echo ----------------------------------------
         echo Invalid choice.. Please try again
         echo ----------------------------------------
         echo
     fi

   else
         echo ----------------------------------------
         echo You either passed too many parameters or too less
         echo than the optimum requirement.
         echo
         echo This program accepts a maximum of 2 arguments or no
         echo argument at all in order to run successfully.
         echo ----------------------------------------
   fi
done

이 코드의 맨 위 부분에서 특별히 작업하고 있습니다. 사용자의 결과가 다음 operand1에 대해 이월되도록 노력하고 있습니다. 각 계산 후 operand1 = 0을 얻습니다. 이 문제를 해결하는 방법을 아십니까? 피연산자 1은 : 0

1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Exit
Enter your choice:
1
Enter operand2 value:
1
----------------------------------------
Addition of 0 and 1 is 1
----------------------------------------

operand 1 is: 0

1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Exit
Enter your choice:

글렌 잭맨

다음은 중복 코드를 줄이는 방법입니다. select메뉴를 표시하기 위해 의 사용에 유의하십시오 .

#!/bin/bash

PS3="Enter the operation: "     # for the select statement

operand() {
    read -r -p "Enter operand${1} value: "
    echo "$REPLY"
}

operand1=$(operand 1)

while true; do
    select operation in Addition Subtraction Multiplication Division Exit; do
        case $operation in
            Exit) exit ;;
            Addition)       op="+"; break ;;
            Subtraction)    op="-"; break ;;
            Multiplication) op="*"; break ;;
            Division)       op="/"; break ;;
        esac
    done

    while true; do
        operand2=$(operand 2)
        if [[ $operation == "Division" ]] && (( operand2 == 0 )); then
            echo Can not divide by 0 please try again 
        else
            break
        fi
    done

    (( result = operand1 $op operand2 ))

    echo "----------------------------------------"
    echo "$operation of $operand1 and $operand2 is $result"
    echo "----------------------------------------"

    echo "operand 1 is: $result" 
    operand1=$result
done

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

쉘 스크립팅 : 변수에서 줄을 자르는 방법

분류에서Dev

쉘 스크립팅 : 변수에서 줄을 자르는 방법

분류에서Dev

단일 awk 변수를 검증하는 쉘 스크립팅

분류에서Dev

쉘 스크립트에서 큰 따옴표로 변수 값을 전달하는 방법

분류에서Dev

쉘 스크립트에서이 for 루프에 변수 값을 전달하는 방법

분류에서Dev

MongoDB-쉘 스크립팅-$ in 인수가 작동하지 않음

분류에서Dev

쉘 스크립트의 변수에 값을 추가하는 방법

분류에서Dev

쉘 스크립팅을 사용하여 경로 변수 설정-쉘 변수 사용

분류에서Dev

환경을 변경하지 않고 쉘 스크립트 실행

분류에서Dev

쉘 스크립트에서 호출되는 Oracle SQL 파일에 변수 값을 입력으로 전달

분류에서Dev

쉘 스크립팅에서 곱셈을 도입하는 방법

분류에서Dev

쉘 스크립팅에서 새 줄을 추가하는 방법

분류에서Dev

쉘 스크립트의 명령이 예상하는 값 전달

분류에서Dev

gnuplot에 매개 변수를 전달하는 쉘 스크립트가 다이어그램 (epslatex)을 내 보내지 않음

분류에서Dev

쉘 스크립트의 변수에 값이 지정되지 않았습니다.

분류에서Dev

oozie에 쉘 스크립트 인수를 전달하는 방법

분류에서Dev

쉘 스크립트에서 인수 값을 'abc $ 1xyz'로 전달하면서 $ 1 값의 대체를 방지하는 방법

분류에서Dev

쉘 스크립트에서 for 루프 내부의 변수 값을 유지하는 방법

분류에서Dev

변수 값을 인쇄하면 문자열이 인쇄됩니다. 쉘 스크립팅

분류에서Dev

쉘 스크립트에서 10 진수 값을 처리하는 방법

분류에서Dev

쉘 스크립트에 16 진수 값을 저장하는 방법

분류에서Dev

변수에 STDOUT을 할당하는 동안 쉘 스크립트 오류 처리

분류에서Dev

쉘 스크립트의 출력을 변수에 저장하는 방법

분류에서Dev

쉘 스크립트에서 변수 확장을 사용하는 방법

분류에서Dev

(쉘 스크립트) 파일에서 값을 가져올 때 변수가 올바르게 전달되지 않습니까?

분류에서Dev

쉘 스크립팅 : 입력 스트림의 변경이 원하는대로 작동하지 않음

분류에서Dev

전역 변수가있는 쉘 스크립트 기능

분류에서Dev

쉘 스크립트의 두 변수에서 공통 값을 찾는 방법

분류에서Dev

쉘 스크립트의 두 변수에서 공통 값을 찾는 방법

Related 관련 기사

  1. 1

    쉘 스크립팅 : 변수에서 줄을 자르는 방법

  2. 2

    쉘 스크립팅 : 변수에서 줄을 자르는 방법

  3. 3

    단일 awk 변수를 검증하는 쉘 스크립팅

  4. 4

    쉘 스크립트에서 큰 따옴표로 변수 값을 전달하는 방법

  5. 5

    쉘 스크립트에서이 for 루프에 변수 값을 전달하는 방법

  6. 6

    MongoDB-쉘 스크립팅-$ in 인수가 작동하지 않음

  7. 7

    쉘 스크립트의 변수에 값을 추가하는 방법

  8. 8

    쉘 스크립팅을 사용하여 경로 변수 설정-쉘 변수 사용

  9. 9

    환경을 변경하지 않고 쉘 스크립트 실행

  10. 10

    쉘 스크립트에서 호출되는 Oracle SQL 파일에 변수 값을 입력으로 전달

  11. 11

    쉘 스크립팅에서 곱셈을 도입하는 방법

  12. 12

    쉘 스크립팅에서 새 줄을 추가하는 방법

  13. 13

    쉘 스크립트의 명령이 예상하는 값 전달

  14. 14

    gnuplot에 매개 변수를 전달하는 쉘 스크립트가 다이어그램 (epslatex)을 내 보내지 않음

  15. 15

    쉘 스크립트의 변수에 값이 지정되지 않았습니다.

  16. 16

    oozie에 쉘 스크립트 인수를 전달하는 방법

  17. 17

    쉘 스크립트에서 인수 값을 'abc $ 1xyz'로 전달하면서 $ 1 값의 대체를 방지하는 방법

  18. 18

    쉘 스크립트에서 for 루프 내부의 변수 값을 유지하는 방법

  19. 19

    변수 값을 인쇄하면 문자열이 인쇄됩니다. 쉘 스크립팅

  20. 20

    쉘 스크립트에서 10 진수 값을 처리하는 방법

  21. 21

    쉘 스크립트에 16 진수 값을 저장하는 방법

  22. 22

    변수에 STDOUT을 할당하는 동안 쉘 스크립트 오류 처리

  23. 23

    쉘 스크립트의 출력을 변수에 저장하는 방법

  24. 24

    쉘 스크립트에서 변수 확장을 사용하는 방법

  25. 25

    (쉘 스크립트) 파일에서 값을 가져올 때 변수가 올바르게 전달되지 않습니까?

  26. 26

    쉘 스크립팅 : 입력 스트림의 변경이 원하는대로 작동하지 않음

  27. 27

    전역 변수가있는 쉘 스크립트 기능

  28. 28

    쉘 스크립트의 두 변수에서 공통 값을 찾는 방법

  29. 29

    쉘 스크립트의 두 변수에서 공통 값을 찾는 방법

뜨겁다태그

보관