Como chamar uma função shell

3

Como posso usar o valor inteiro retornado por uma função no shell script que usa alguns argumentos como entrada?

Estou usando o seguinte código:

fun()
{
    echo "hello ${1}"
    return 1
}

a= fun 2
echo $a

Não sei como devo chamar essa função. Eu tentei os métodos abaixo, bot nenhum deles parece funcionar:

a= fun 2
a='fun 2'
a=${fun 2}
    
por g4ur4v 04.05.2014 / 11:52

3 respostas

4

O código de saída está contido em $? :

fun 2
a=$?
    
por 04.05.2014 / 11:54
1

você pode dar uma olhada na seguinte pergunta: link com uma resposta longa e bem explicada. Atenciosamente.

    
por 04.05.2014 / 12:11
0
#!/bin/bash

function producer_func()
{
    echo "1"
    echo "[ $1 ]"
    echo "2"
    echo "3"
}

function returner_func()
{
    echo "output from returner_func"
    return 1
}

#just print to stdout from function
producer_func "aa ww"
echo "--------------------"

#accumulate function output into variable
some_var=$(producer_func "bbb ccc")
echo -e "<$some_var>"
echo "--------------------"

#get returned value from function, may be integer only
returner_func
echo "returner_func returned  $?"
echo "--------------------"

#accumulate output and get return value
some_other_var='returner_func'
echo "<$some_other_var>"
echo "returner_func returned  $?"
echo "--------------------"

tutorial interessante do bash, pontos de link para invocação de funções

    
por 04.05.2014 / 13:02