Domanda

Ho uno script bash che richiede all'utente di inserire "read". Se lo stdout o lo stderr vengono convogliati a qualcosa di diverso da un terminale, vorrei sopprimere questo passaggio. È possibile?

È stato utile?

Soluzione

Puoi verificare se un filedescriptor è un tty (attaccato ad un terminale) con il comando test -t < filedescriptor no. > ;. In tal caso, è possibile richiedere all'utente. In caso contrario, l'output è probabilmente reindirizzato o ridimensionato da qualche parte.

if test -t 1  ; then
  echo stdout is a tty
fi
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top