2011-01-14 14 views

risposta

10

In breve, no, ma è possibile ottenere i valori di uscita di ciascuno dei comandi nella pipe tramite $PIPESTATUS. È possibile modificare il comportamento di esso del valore di ritorno tramite l'opzione di shell shopt -s pipefail ed è possibile modificare quanto viene tamponato da comando per comando tramite ulimit -p

+0

Quante cose ho imparato da una risposta così breve! – Bolo

+2

'$ PIPESTATUS' e' shopt -s pipefail' sono dei bashismi, ma per il resto sono alquanto sensibili. 'ulimit -p' è anche un bashismo, ma abbastanza inutile: mostra quanto un programma può scrivere contemporaneamente su una pipe in modo tale che la scrittura non possa confondersi con un'altra scrittura, ma il buffer effettivo è solitamente più grande; è improbabile che sia necessario in uno script, ma se lo fai, usa 'getconf PIPE_BUF /'. – jilles

4

| non è un comando e come tale non ha argomenti. Tuttavia i comandi utilizzati attorno al tubo possono ricevere comandi. Consulta le manpage per questi comandi.

0

| non è un comando, piuttosto un costrutto sintassi interpretato dalla shell. Quindi è necessario controllare la propria documentazione della shell per vedere se supporta alcune opzioni specifiche per pipe.

Per rispondere meglio alla tua domanda, puoi dire quale shell usi e cosa stai cercando di ottenere?

Problemi correlati