[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [deb-cat] logsave mes net




Bones,

Jo per capturar la sortida i el codi de retorn de la comanda normalment utilitzo variables i subshells.
Si no m'equivoco ni en shell ni en bash hi ha la paraula clau "return", per això es fa un "echo" o es captura el codi de retorn en funció de les teves necessitats, perquè et podria interessar més formatejar la sortida del subshell (per exemple, amb sed o awk) abans d'enviar-la cap al fitxer de log:

#!/bin/sh
LaFuncio ()
{
        ls /inexistent
        Resultat=$?
        echo $Resultat
}
sortida=$(LaFuncio 2>&1)
Resultat=$?
# aquí pots treballar la sortida, per exemple
echo $sortida | sed -e 's/ /\t/g'  | tee -a /var/log/labitacola.log
if [ "$Resultat" != "0" ] ; then echo "Problema" ; fi
exit $Resultat



Salut, bon dissabte.


On Saturday, 17 October 2015, Narcis Garcia <informatica@actiu.net> wrote:
Em sembla que les matrius com PIPESTATUS només són suportades per Bash,
i no per altres intèrprets de ShellScript. Intento fer programets el més
portables possibles.

Un exemple de programet per qual recollir el codi de sortida:

#!/bin/sh
LaFuncio ()
{
        ls /inexistent
        Resultat=$?
        return $Resultat
}
LaFuncio 2>&1 | tee -a /var/log/labitacola.log
Resultat=$?
if [ $Resultat -ne 0 ] ; then echo "Problema" ; fi
exit $Resultat


El 17/10/15 a les 11:41, Simó Albert i Beltran ha escrit:
> Si poguéssim veure el codi del que estas fent podríem opinar amb
> propietat.
>
> Respecte el codi de retorn i la canalització a bash:
>
> false | true
> echo ${PIPESTATUS[0]} ${PIPESTATUS[1]}
>
> o bé:
>
> set -o pipefail
> false | true || echo ko
>
>
> Respecte fer una bitàcola (es diu així?), jo acostumo a usar el logger
> que ja s'ha comentat pots veure'n un exemple a:
> https://gitlab.com/dtv3/dtv3/blob/master/dtv3#L145
>



--
--

R. Sicart


Reply to: