我有一个可执行文件(语法),当运行时从终端获取输入(事实),并按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吗?
cat
是concatenate
的缩写,所以这两个输入文件之间的区别当然丢失了。如果./grammer
不能通过传递文件名作为参数读取文件目录
./grammer facts.pl queries.pl
您需要为每个文件分别调用./grammer
。
for f in facts.pl queries.pl; do
./grammer < "$f"
done