将Linux命令的结果作为下一个命令的参数
2021/10/20 7:12:30
本文主要是介绍将Linux命令的结果作为下一个命令的参数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
查询所有的pid并杀死。
jps -l | grep bdcsc2-native-demo | awk '{print $1}' | xargs kill -9
KISS:keep it short and simple!
1. 符号:` `
名称:反引号,上分隔符
位置:反引号(`)这个字符一般在键盘的左上角,数字1的左边,不要将其同单引号(’)混淆
作用:反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分
举例:
1 2 |
$ echo ` date `
Thu Mar 7 21:31:11 CST 2013
|
2. $()
效果同` `
3. 命令:xargs
xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据。xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。
1 2 |
$ date | xargs echo
Thu Mar 7 21:47:12 CST 2013
|
管道与xargs的区别:
- 管道是实现“将前面的标准输出作为后面的标准输入”
- xargs是实现“将标准输入作为命令的参数”
4. find命令的-exec参数 xargs:通过缓冲方式并以前面命令行的输出作为参数,随后的命令调用该参数
若忽略 xargs 的 options 来看的话,
cm1 | xargs cm2
可以单纯看成: cm2 `cm1`
因此, find .... | xargs rm 也可作 rm `find ...` 来处理.
然而, 若 find 的结果太多, 可能会超过rm 可能接受的最大argument数量而失败.
xargs优点:由于是批处理的,所以执行效率比较高(通过缓冲方式)
xargs缺点:有可能由于参数数量过多(成千上万),导致后面的命令执行失败
若换成 find .... -exec rm {} \; 的话,
因为rm 是" 逐个 " item 去处理的, 则无此忧虑
原文链接:https://www.cnblogs.com/zhangshiwen/p/6030011.html
这篇关于将Linux命令的结果作为下一个命令的参数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南