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

La parte > output.txt se ignora, por lo que output.txt termina siendo vacío.Cómo redirigir la entrada y salida estándar con Bash

Esto funciona para el comando sort, así que esperaba trabajar también para otros programas.

¿Alguna razón por la que esto no funciona? ¿Cómo debería lograr esto?

+2

Tal vez la salida de ./program va al error estándar? Pruebe '2> output.txt' – Richante

+0

@Richante LOL que es extraño pero ahora funciona (¿por qué escribe la respuesta en un comentario?) Gracias – Inuart

Respuesta

6

La explicación más probable es que la salida que está viendo es stderr, no stdout. Para redirigir a ambos a un archivo, haga lo siguiente:

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

o

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

¿Cómo haría algo como' ./program salida.txt'? – grinch

Cuestiones relacionadas