扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。 连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。下面来看看管道是如何在构造一条Linux命令中得到应用的。
成都网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设公司、微信开发、小程序开发、集团企业网站建设等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都三维植被网等众多领域,积累了大量丰富的经验,同时也获得了客户的一致称扬!
注意:
1、管道命令只处理前一个命令正确输出,不处理错误输出。
2、管道命令右边命令,必须能够接收标准输入流命令才行。
这条命令使用一个管道符“|”建立了一个管道。管道将rpm -qa命令的输出(包括系统中所有安装的RPM包)作为grep命令的输入,从而列出带有licq字符的RPM包来。
这条命令使用了两个管道,利用第一个管道将cat命令(显示passwd文件的内容)的输出送给grep命令,grep命令找出含有“/bin /bash”的所有行;第二个管道将grep的输出送给wc命令,wc命令统计出输入中的行数。这个命令的功能在于找出系统中有多少个用户使用bash。
区别是:
1、左边的命令应该有标准输出 | 右边的命令应该接受标准输入
左边的命令应该有标准输出 右边只能是文件
左边的命令应该需要标准输入 右边只能是文件
2、管道触发两个子进程执行"|"两边的程序;而重定向是在一个进程内执行
这些都是网上总结很多的,其实只要多加清楚用法,也一定有自己的一份不同描述。
着要看你怎么要这个命令参数了。
一般来说可以用 $(xxxxx) 或者 `xxxxx` (数字1左边的那个引号)做命令的嵌套
jiangtao@Gentoo ~/temp $ date
2013年 03月 07日 星期四 21:44:23 CST
jiangtao@Gentoo ~/temp $ echo 现在时间是:`date`
现在时间是:2013年 03月 07日 星期四 21:44:45 CST
jiangtao@Gentoo ~/temp $ echo 现在时间是:$(date)
现在时间是:2013年 03月 07日 星期四 21:44:57 CST
jiangtao@Gentoo ~/temp $
管道符是另一种用法,这是用“标准输入输出”给命令做数据。
但要注意,这一般是需要处理的数据,不是作为一个程序的参数。第二个命令必须支持管道符输入数据才行。
参数和管道符提供的数据流是不同的概念。
简单说来就是,管道线前面的命令结果作为后面命令的参数
比如find -user gxh表示查找属于用户gxh的文件,单独运行这条命令后会列出很多;这些列出的条目作为wc -l的参数,表示列出文件行数
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流