我在书中读到这个例子:

 cp /bin/cat proj33
 echo -n x | ./proj33 - pipe33a > pipe33b &
./proj33 <pipe33b >pipe33a &

符号-><是什么意思?

最佳答案

>是i/o重定向;它将命令的标准输出(./proj33)发送到文件pipe33b
<符号也是i/o重定向;它从文件./proj33发送命令的标准输入(pipe33b)。
-只是一个参数。命令通常将其视为读取标准输入而不是文件的指示。在这种情况下,proj33通常需要一个文件作为它的第一个参数,但是当参数是-时,它从管道中读取。有时,-用来表示标准输出。在极端情况下,一个-表示标准输入,一个表示单个命令的标准输出。使用gnutar,可以将输出写入标准输出(tar -c -f - -T -)并从标准输入读取要存档的文件列表(-f -)。
如果您看到-T -,那是非常不同的;它表示命令的“选项结束”;后面的任何内容都不是选项,即使它以破折号--开头。

08-18 16:09