0

我有一个可执行文件(语法),它在运行时从终端获取输入(事实)并按 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 吗?

4

1 回答 1

1

cat是 的缩写concatenate,因此当然会丢失两个输入文件之间的区别。如果./grammer无法通过将文件名作为参数传递来读取文件目录

./grammer facts.pl queries.pl

您需要./grammer为每个文件单独调用。

for f in facts.pl queries.pl; do
    ./grammer < "$f"
done
于 2013-03-28T12:23:25.770 回答