Determinando o status de saída do "retorno" embutido

3

Eu estava lendo sobre traps, mas só retornava trabalhos para mim no meu shell script, então queria saber qual status ou código ele retorna, então o que tentei é,

#!/bin/bash
seeOutput='return'
echo $seeOutput

Ele está apenas retornando uma nova linha e, quando feito no terminal, diz

-bash: return: can only 'return' from a function or sourced script

que eu já sei: p eu só preciso saber o status de saída do "retorno".

    
por Keyshov Borate 06.08.2014 / 14:27

3 respostas

3
O código de retorno

é armazenado em $? variável.

false ; echo $?
true ; echo $?

retornaria

1
0
A convenção do

unix é que 0 significa OK. no seu exemplo, veja oOutut mantenha qualquer saída do comando entre aspas.

Não confunda saída e código de retorno.

    
por 06.08.2014 / 14:36
4

O que você está fazendo é chamar um comando de shell return , o que não faz sentido. Em geral, return sem valor seguido retorna o status de saída do último comando executado.

De man : faz com que uma função saia com o valor de retorno especificado por n. Se n é omitido, o status de retorno é aquele do último comando executado no corpo da função.

    
por 06.08.2014 / 14:38
-1

Foi assim que eu usei:

f()
{
   ls $AAA
   return $?
}

g()
{
   f
   return $?
}

d()
{
   g
   echo $?
}

AAA=
d

_

<contents of dir>
0

_

AAA=sdsasdasd
d

_

ls: sdsasdasd: No such file or directory
2
    
por 26.02.2015 / 22:52

Tags