最近的工作中,发现自己对于Linux的命令的了解不够深入,需要进一步的学习加强。
在工作中,输入单个命令可能不能满足自己的需求,往往需要上一个命令的输出作为下一个命令的输入,如果因此去写个shell脚本,有点小题大做,那么这个时候管道命令是我们需要的。
举个栗子:我用ls查看文件夹下目录,但是目录太多,我不能很快着找到,那么我可以这样:ls列举全部,然后它的输出作为grep的输入,查寻含有sms-tx字符的目录
ls | grep sms-tx
![](https://img.haomeiwen.com/i4979888/f78271759842b3dc.png)
管道命令的定义
众所周知,管道(pipe)是一种两个进程间进行单向通信的机制,是Linux进程间通信中所使用的技术。
管道命令,主要是将前一个命令的输出作为下一个命令的输入。以
|
作为界定符。
值得注意的是:
1.管道命令是不会处理上一个命令的错误的;
2.管道命令右边命令,必须能够接收标准输入流命令才行。
应用
cat ali-录音识别.json | grep 'begin_time'
![](https://img.haomeiwen.com/i4979888/34bcfbab7b609051.png)
还可以延伸的一点,当需要的内容太多时,我们可以通过重定向(
>
)到文件
cat ali-录音识别.json | grep 'begin_time' > test.txt
![](https://img.haomeiwen.com/i4979888/ad08e138569cc12d.png)
执行多条命令
除了管道命令,我们还有其他方式执行多个命令
1.顺序执行可以使用;
命令不报错的情况下,顺序执行,互不影响
command1;command2;command3;
2.按条件执行使用&&
和||
##如果command1执行成功,则执行command2
command1 && command2
##如果command1执行失败,则执行command2
command1 || command2
网友评论