我有两个文件:test和input1。
以下是我的“测试”文件:

echo $1 $2

更改输出的工作方式与在终端中写入时一样:
./test foo bar > input1

字符串“foo bar”被写入input1。
然而,当我在终端上写下:
./test < input1

终端上打印的只是一个跳过的行。
你知道为什么“foo bar”没有打印到终端吗?

最佳答案

这是因为test不回显标准输入,而是回显命令参数。
$1$2表示命令行上的第一个和第二个参数,它们是测试响应的参数。
小于(“要使shell的行为更像您期望的那样,您必须获取input1的内容并将其放入传递给测试的命令参数中。
也许这就是你想要的:

./test $(cat input1)

关于linux - 在Linux中重定向输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13638673/

10-10 03:17