If-else Instrução ou comando dentro de uma função?

0

É possível ter um if-else dentro de uma função?

Aqui eu tenho o menu.

Por favor, veja os códigos abaixo.

#!/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

Alguma dica ou sugestão?

    
por Edmhar 22.07.2016 / 11:30

1 resposta

3

Sim, uma função shell pode usar instruções 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

A única razão pela qual eu uso local na função é fornecer as duas variáveis escopo local. Se eu não fizesse isso, eles existiriam no corpo principal do script depois de chamar comment_on_val , que neste caso não é intencional.

    
por 22.07.2016 / 11:52

Tags