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 <informat...@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