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
>
--
Reply to: