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なので、もちろん 2 つの入力ファイルの区別は失われます。./grammerファイル名を引数として渡してファイルディレクトリを読み取れない場合

./grammer facts.pl queries.pl

./grammerファイルごとに個別に呼び出す必要があります。

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