exec 3>&1 # Save current "value" of stdout.
ls -l 2>&1 >&3 3>&- | grep bad 3>&- # Close fd 3 for 'grep' (but not 'ls').
# ^^^^ ^^^^
exec 3>&- # Now close it for the remainder of the script.
Ottengo la 3a riga dove viene chiuso fd 3.Aiutami a capire questo semplice reindirizzamento in bash dalla guida ABS
Dubbi: 1a riga reindirizza da fd 3 a stdout, globalmente ... giusto?
Domande: Cosa succede sulla seconda linea? Si prega di fornire una spiegazione dettagliata se possibile.
Anche se uno può eseguire trucchi complicati con descrittori aggiuntivi in * sh, se questo dovrebbe essere fatto al povero schlub che deve leggerlo dopo (ad es. Tu) è meno sicuro. – msw
@msw Stavo guardando il tuo profilo e sembra che tu abbia una buona conoscenza della shell Linux/UNIX, ecc. Ti rispetto per questo, ma non apprezzo che tu mi abbia chiamato schlub. Se non puoi aiutare, tieni le tue battute per te. – abc
Sono anche il povero schlub che spesso deve rileggere il mio codice in un secondo momento. Mi dispiace che tu abbia accettato personalmente il mio commento, in quanto generico, con l'intento di essere un po 'autoironico, e sicuramente ** non ** destinato a insultare. Gran parte del mio profilo è finzione, a parte il fatto che sono in giro troppo a lungo. – msw