함수 안에 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
이 경우에는 의도되지 않습니다.