0 votos

bash prinf va al log pero output= no

La primera línea de este recorte va al archivo de registro, pero la segunda no. Necesito que la segunda se ejecute y se registre.

#!/bin/bash
printf '%s %s (%s) running...\n' 2>&1 | tee -a $logfile
output=$(restic -r ${backupdir} snapshots ) 2>&1 | tee -a $logfile

¿Cómo puedo registrar también la línea output=?

0 votos

La segunda línea básicamente intenta añadir la salida de una sentencia de asignación al archivo de registro. Como esta sentencia no produce ninguna salida no hay nada que añadir :-)

2voto

John N Puntos 400

En la segunda línea, ¡no debería haber salida! Estás asignando el resultado de restic -r ${backupdir} snapshots a output y eso no producirá ninguna salida, ni a stdout o a stderr (equivale a output="Value stored for later" - cuando este comando se ejecuta, no hay salida).

Intenta algo como...

output=$(restic -r ${backupdir} snapshots )
echo $output | tee -a $logfile

O podrías simplificarlo haciendo...

restic -r ${backupdir} snapshots 2>&1 | tee -a $logfile

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X