我有一个可执行文件(语法),当运行时从终端获取输入(事实)并结束我按Ctrl + D(EOF)。之后程序开始再次输入另一个输入(查询)以结束我按Ctrl + D. 所以我想做的是从文件和终端查询输入事实。 我试过了
./grammer < facts.pl #this assumes that all the input is from file so program terminates after inputting only facts
cat facts.pl queries.pl | ./grammer #this merges both file and removes the EOF in between files
我可以顺序输入多个文件,即在结束时首先执行eof,然后从file2开始输入?
我可以在实际文件结束前以某种方式输入EOF吗?
答案 0 :(得分:1)
cat
是concatenate
的缩写,因此两个输入文件之间的区别当然会丢失。如果./grammer
无法通过将文件名作为参数
./grammer facts.pl queries.pl
您需要为每个文件单独调用./grammer
。
for f in facts.pl queries.pl; do
./grammer < "$f"
done