普通的管道和xargs有什么区别
发表于 : 2011-11-22 11:33
一直弄不懂,管道不就是把前一个命令的结果作为参数给下一个命令吗,那在 | 后面加不加xargs有什么区别
代码: 全选
echo "--help"|cat
echo "--help"|xargs cat
试过了,依然不是很确定的明白到底是什么意思,自己再探索一下看看把懒蜗牛Gentoo 写了:管道是实现“将前面的标准输出作为后面的标准输入”
xargs是实现“将标准输入作为命令的参数”
你可以试试运行:看看结果的不同。代码: 全选
echo "--help"|cat echo "--help"|xargs cat
如果你直接在命令行输入cat而不输入其余的任何东西,这时候的cat会等待标准输入,因此你这时候可以NewUserFF 写了:试过了,依然不是很确定的明白到底是什么意思,自己再探索一下看看把懒蜗牛Gentoo 写了:管道是实现“将前面的标准输出作为后面的标准输入”
xargs是实现“将标准输入作为命令的参数”
你可以试试运行:看看结果的不同。代码: 全选
echo "--help"|cat echo "--help"|xargs cat
谢谢啦!这个解释是最好理解的liu滔 写了:如果你直接在命令行输入cat而不输入其余的任何东西,这时候的cat会等待标准输入,因此你这时候可以NewUserFF 写了:试过了,依然不是很确定的明白到底是什么意思,自己再探索一下看看把懒蜗牛Gentoo 写了:管道是实现“将前面的标准输出作为后面的标准输入”
xargs是实现“将标准输入作为命令的参数”
你可以试试运行:看看结果的不同。代码: 全选
echo "--help"|cat echo "--help"|xargs cat
通过键盘输入并按回车来让cat读取输入,cat会原样返回。而如果你输入--help,那么cat程序会在标准输出上
打印自己的帮助文档。也就是说,管道符 | 所传递给程序的不是你简单地在程序名后面输入的参数,它们会被
程序内部的读取功能如scanf和gets等接收,而xargs则是将内容作为普通的参数传递给程序,相当于你手写了
cat --help
很精辟 蜗牛懒蜗牛Gentoo 写了:管道是实现“将前面的标准输出作为后面的标准输入”
xargs是实现“将标准输入作为命令的参数”
你可以试试运行:看看结果的不同。代码: 全选
echo "--help"|cat echo "--help"|xargs cat