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

Phần > output.txt đang bị bỏ qua để output.txt kết thúc khi trống.Cách chuyển hướng đầu vào và đầu ra tiêu chuẩn bằng Bash

Điều này phù hợp với lệnh sort vì vậy tôi dự kiến ​​cũng sẽ làm việc cho các chương trình khác.

Bất kỳ lý do nào không hoạt động? Làm thế nào tôi nên đạt được điều này?

+2

Có lẽ đầu ra từ ./program sẽ sai số chuẩn? Hãy thử '2> output.txt' – Richante

+0

@Richante LOL đó là lạ nhưng bây giờ hoạt động (tại sao bạn viết câu trả lời trong một bình luận?) Cảm ơn – Inuart

Trả lời

6

Giải thích rất có thể là đầu ra bạn đang xem là từ stderr, chứ không phải stdout. Để chuyển hướng cả trong số họ vào một tập tin, làm điều này:

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

hoặc

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

Làm thế nào bạn sẽ làm một cái gì đó như' ./program output.txt'? – grinch

Các vấn đề liên quan