본문 바로가기

IaC Application/SHELL

함수

#!/bin/bash
#함수 사용법
function C() {
    echo "I am C Function"
}

function B() {
    echo "I am C Function"
    return 1
}

function A() {
    echo "I am C Function"
    return 2
}
A;echo $?

B;echo $?

C;echo $?

D

function D()
{
    echo "I am C Function"
    return 2
}

--실행
[root@localhost ~]# sh /root/function_01.sh
I am C Function
2
I am C Function
1
I am C Function
0			--return 값을 따로 부여하지 않았으므로 종료상태인 0으로 출력된다
/root/function_01.sh: 줄 22: D: 명령어를 찾을 수 없음

--함수를 이용한 소스코드 간소화
#!/bin/bash

while true
do
    echo "====== 사칙연산 프로그램 ======"
    echo "1) 더하기"
    echo "2) 빼기"
    echo "3) 곱하기"
    echo "4) 나누기"
    echo "5) 종료"
    echo -n "메뉴 선택(1~5): "
    read sel

    ### 함수 정의 영역
    function input() {
        if [ $sel -eq 5 ]; then
            return
        else
            echo -n "숫자1 입력: "
            read num1
            echo -n "숫자2 입력: "
            read num2
        fi
    }

    function duhagi(){
        let "sum = num1 + num2"
        echo "덧셈 결과: $sum"
    }

    function bbaegi(){
        let "sub = num1 - num2"
        echo "뺄셈 결과: $sub"
    }

    function gobhagi(){
        let "mul = num1 * num2"
        echo "곱셈 결과: $mul"
    }

    function nanugi(){
        if [[ "$num2" -eq 0 ]]; then
            echo "0으로 나눌 수 없습니다."
        else
            let "div = num1 / num2"
            echo "나눗셈 결과: $div"
        fi
    }

    #### 스크립트 실행
    input
    case "$sel" in
        1)
            duhagi
            ;;
        2)
            bbaegi
            ;;
        3)
            gobhagi
            ;;
        4)
            nanugi
            ;;
        5)
            echo "프로그램을 종료합니다"
            break # 반복문 빠져나올 때 사용
            ;;
        *)
            echo "잘못된 메뉴를 선택하셨습니다"
            break # 잘못된 선택일 때도 반복문을 빠져나오도록 설정
            ;;
    esac
done

--실행
[root@localhost ~]# sh calc_loop_func.sh
====== 사칙연산 프로그램 ======
1) 더하기
2) 빼기
3) 곱하기
4) 나누기
5) 종료
메뉴 선택(1~5): 1
숫자1 입력: 2
숫자2 입력: 2
덧셈 결과: 4
====== 사칙연산 프로그램 ======
1) 더하기
2) 빼기
3) 곱하기
4) 나누기
5) 종료
메뉴 선택(1~5): 2
숫자1 입력: 3
숫자2 입력: 1
뺄셈 결과: 2
====== 사칙연산 프로그램 ======
1) 더하기
2) 빼기
3) 곱하기
4) 나누기
5) 종료
메뉴 선택(1~5): 3
숫자1 입력: 1
숫자2 입력: 2
곱셈 결과: 2
====== 사칙연산 프로그램 ======
1) 더하기
2) 빼기
3) 곱하기
4) 나누기
5) 종료
메뉴 선택(1~5): 4
숫자1 입력: 6
숫자2 입력: 2
나눗셈 결과: 3
====== 사칙연산 프로그램 ======
1) 더하기
2) 빼기
3) 곱하기
4) 나누기
5) 종료
메뉴 선택(1~5): 5
프로그램을 종료합니다

'IaC Application > SHELL' 카테고리의 다른 글

정규표현식 - grep  (0) 2024.03.21
SHELL  (0) 2024.03.21