2012-04-09 16 views
5
#!/bin/bash 
./program <input.txt> output.txt 

La parte > output.txt viene ignorato in modo output.txt finisce per essere vuota.Come reindirizzare input e output standard con Bash

Questo funziona per il comando sort così mi aspettavo di lavorare anche per altri programmi.

Qual è il motivo questo non funziona? Come dovrei ottenere questo?

+2

Forse l'uscita dal ./program sta per l'errore standard? Prova '2> output.txt' – Richante

+0

@Richante LOL che è strano, ma ora funziona (perché scrivi la risposta in un commento?) Grazie – Inuart

risposta

6

La spiegazione più probabile è che l'output visualizzato sia stderr, non stdout. Per reindirizzare entrambi in un file, fare questo:

./program <input.txt> output.txt 2>&1 

o

./program < input.txt &> output.txt 
+0

Come si farebbe qualcosa di simile a' ./program output.txt'? – grinch

Problemi correlati