如何將重定向輸入計為指令輸出

如何將重定向輸入計為指令輸出

我有一個簡單的 C 控制台程序,它接受一些鍵盤輸入並輸出提示和計算。我還有兩個文字檔:一個包含程式輸入的文件,一個包含程式應給的輸出的文件。

問題是

$ c_program < input_file > output_file

不將輸入回顯到輸出檔。輸出檔案將只有提示和計算,沒有重定向的輸入。如何使輸入與輸出相吻合,以便輸出檔案看起來像使用鍵盤輸入一樣?

例如,這是一個範例會話:

Input number of feet traveled: 5
Input number of seconds: 2.5
Average speed is 2.0 feet per second

但是當重定向輸入和輸出時,我們得到:

Input number of feet traveled: Input number of seconds: Average speed is 2.0 feet per second

我怎麼能讓第二個看起來像第一個?

答案1

為了編寫與程式的交互腳本,同時以正確的順序捕獲交互,您可能需要查看更高級的工具,而不僅僅是輸入和輸出重定向。

例如,使用期待(1)你可以像這樣編寫你的互動腳本:

#!/usr/bin/expect
spawn "./c_program"    
expect "Input number of feet traveled: "
send "5\r"
expect "Input number of seconds: "
send "2.5\r"
expect eof

當您執行腳本時,您將獲得整個自動互動的記錄。

相關內容