我正在尝试以下
echo 5 | echo
但什么也没得到。哪里出了问题?
答案1
grep
和等命令awk
可以接受标准输入(STDIN)作为参数,或使用管道的参数。但是,其他诸如cp
和之类的语言echo
则忽略标准输入流,而仅依赖于参数执行该命令后发现。
使用命令xargs
您可以从标准输入构建和执行命令行,例如在您的例子中:
echo 5 | xargs echo
没有确切的规则可以知道命令是否接受标准输入,但是您可以使用以下两个规则稍微了解一下:
如果该命令用于以某种方式操作文件的内容(
grep
,sed
等awk
),那么它通常可以从 STDIN 获取输入。如果该命令用于操作文件本身(例如
mv
,,rm
)cp
或进程(例如kill
,lsof
)或返回有关某些内容的信息(例如top
,, )find
,ps
则不然。