所以我有一個運行在while(true)循環中的Linux程序,它等待用戶輸入,處理它並將結果打印到標準輸出。如何將文本發送到shell腳本中的進程?
我想編寫一個shell腳本來打開這個程序,從txt文件中提供一行,每次一行,並將每行的程序輸出保存到一個文件中。
所以我想知道是否有任何命令:
- 打開一個程序
- 文本發送過程
- 從程序接收輸出
非常感謝。
所以我有一個運行在while(true)循環中的Linux程序,它等待用戶輸入,處理它並將結果打印到標準輸出。如何將文本發送到shell腳本中的進程?
我想編寫一個shell腳本來打開這個程序,從txt文件中提供一行,每次一行,並將每行的程序輸出保存到一個文件中。
所以我想知道是否有任何命令:
- 打開一個程序
- 文本發送過程
- 從程序接收輸出
非常感謝。
這聽起來像你想是這樣的:
cat file | while read line; do
answer=$(echo "$line" | prog)
done
這將運行的prog
一個新實例的每一行。該行將是標準輸入prog
,輸出將放入變量answer
中供腳本進一步處理。
有人反對「cat file |」因爲這會創建一個你並不真正需要的過程。
while read line; do
answer=$(echo "$line" | prog)
done < file
你看着pipes and redirections:您也可以通過把它done
後使用文件重定向?您可以使用管道將來自一個程序的輸入提供給另一個程序。您可以使用重定向將文件的內容發送到程序,和/或將輸出寫入文件。
我假設你想要一個用bash編寫的腳本。
|
或<
(採取從文件輸入)>
將輸出重定向到一些文件或>>
重定向很好,但結果追加而不是截斷文件達到你在bash想要的東西,你可以寫:
#/bin/bash
cat input_file | xargs -l1 -i{} your_program {} >> output_file
這對於EA調用your_program
ch line from input_file
並附加結果到output_file
downvoter是否在意解釋他或她發現的錯誤? – 2010-03-15 23:16:33