我已经使用gcc
并make
编译了一个c
文件。运行文件的名称是sequence
.我有两个目标:
- 有一个输入文件(即
in1
)stdin
并运行该程序。当程序完成使用 in1 并终止时,使用不同的输入文件(即in2
在终端命令中指定)再次运行它。 - 将程序执行的所有不同时间的所有输出都转到同一个文件(即
output1
),而不覆盖以前的输入。所以结果会是这样的:
输入文件:
in1
:
a
in2
:
b
in3
c
程序中:
putchar(getchar());
输出:
a
b
c
如何通过终端命令达到预期的结果?
答案1
您似乎混淆了 shell 的职责和程序的职责。
你有两个选择
让程序打开 3 个文件,并将它们写入 stdout。这就是猫所做的。
program in1 in2 in3
使用 shell-redirection-append >>
。
例如
program <in1 >> file-name
program <in2 >> file-name
program <in3 >> file-name
或使用括号,并覆盖重定向
{
program <in1
program <in2
program <in3
} > file-name