如果我有一個C++程序在運行期間期望從控制檯輸入到cin,那麼我怎樣才能從shell腳本自動執行此輸入?我還需要將其輸出存儲在一個文件中,但該部分很簡單。我研究了不同的方法,包括將它回顯到/ proc中pid的文件描述符,但似乎沒有任何工作。如何在shell中回顯正在運行的進程?
這是我到目前爲止有:
#!/bin/sh
g++ -o runme source.cpp
echo <<EOT | ./runme > output
expected program input
more expected program input
even more
EOT
注意,輸入的每一行需要一個「輸入按鍵」可以通過CIN在節目中,我是這樣假設,因爲應該發生讀腳本中的程序輸入以換行符分隔。在這裏,程序得到執行,但在文件中產生相同的輸出,無論我在EOT之前放置什麼,所以它不會按預期輸入到程序的cin中。
謝謝,這工作完美無瑕! – hesson