linux bash 自动回复yes | pipe管线的妙用

最近做服务器部署比较多,自然遇到一些重复的指令希望能让脚本自动化运作,省点力气

遇到一个问题:

[有些指令需要输入确认信息,比如递归删除指令会有确认需要输入yes或者no]

简单搜索之后发现有很多解决办法,其中一种看起来比较不错的方法:

如何让sh自动输入yes,自动确认?

echo yes | sudo rm -Ir yourdir


这个写法看起来很神气,为什么echo yes要写在前面,如果写在后面能有同样的效果么?

于是我尝试倒过来写,运行后发现yes直接就出来了,然后才去运行删除指令,并且需要我再次手动确认。

为了了解这个神奇的 | 是什么,又进行了一番搜索

但是搜索引擎提前过滤了这些符号,结果完全不是期望的内容

这次在知乎找到了帮助:

如何查找、学习linux bash的特殊符号含义?

·直接搜索 bash 特殊符号

·使用一个支持特殊符号的搜索引擎:http://symbolhound.com


搜索后得知, | 符号在bash是pipe管线功能

通过这个pipe管线功能可以对一些含有标准输入输出的指令进行进一步操作

包括上面提到的自动回复yes

还有最近经常用到的 ps -ef | grep java 可以查看所有名称包含java的进程

或者更常见的在诸如ls 一个内容很长的文件夹的时候,可以 | less 来分段查看等等

你可能感兴趣的:(linux,devOps,bash,linux,开发运维)