
我有一個簡單的 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
當您執行腳本時,您將獲得整個自動互動的記錄。