if-else 문이나 함수 내의 명령?

if-else 문이나 함수 내의 명령?

함수 안에 if-else가 있을 수 있나요?

여기 메뉴가 있어요.

아래 코드를 참조하세요.

#!/bin/bash

#Main Menu

function p_enter
{
    echo ""
    echo -n "Press Enter to continue"
    read
    clear
}

function df1
{
read var
if [ $var = "1" ]
 then
 echo "nice"
 else
 echo "not bad"
 fi
   }



    select=
    until [ "$select" = "0" ]; do
        echo ""
        echo "MAIN MENU"
        echo "1 - XML DATA REPORT"
        echo "2 - SOON "
        echo ""
        echo "0 - exit"
        echo ""
        echo -n "Enter sleection: "
        read select
        echo ""

    case $select in
            1 ) df1 ; press_enter ;;
            2 ) free ; press_enter ;;
            3 ) exit ;;
            * ) echo "nvalid entry"; press_enter
     esac
     done

팁이나 제안 사항이 있나요?

답변1

예, 쉘 함수는 if/else 문을 사용할 수 있습니다.

#!/bin/bash

function comment_on_val {
    local the_reply="$1"
    local the_word="$2"

    if (( the_reply == 1 )); then
        echo "The value is one ($the_word)"
    else
        echo "The value isn't one ($the_word)"
    fi
}

echo "Menu:"
select word in "Yes" "No" "Exit"; do
    case "$REPLY" in
        3) break    ;;
        *) comment_on_val "$REPLY" "$word"   ;;
    esac
done

local내가 함수에 사용하는 유일한 이유는 이 두 변수에 대한 로컬 범위를 제공하기 위해서입니다. 이 작업을 수행하지 않으면 호출 후 스크립트 본문에 존재하게 되지만 comment_on_val이 경우에는 의도되지 않습니다.

관련 정보