O código de saída está contido em $?
:
fun 2
a=$?
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}
você pode dar uma olhada na seguinte pergunta: link com uma resposta longa e bem explicada. Atenciosamente.
#!/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
Tags shell-script function