zoukankan      html  css  js  c++  java
  • 将Linux命令的结果作为下一个命令的参数

    查询所有的pid并杀死。

    jps -l | grep bdcsc2-native-demo | awk '{print $1}' | xargs kill -9

    KISS:keep it short and simple!

    1. 符号:` `
    名称:反引号,上分隔符
    位置:反引号(`)这个字符一般在键盘的左上角,数字1的左边,不要将其同单引号(’)混淆
    作用:反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分
    举例:

    $ echo `date` 
    Thu Mar 7 21:31:11 CST 2013

    2. $() 
    效果同` `

    3. 命令:xargs
    xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据。xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。

    $ 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 去处理的, 则无此忧虑

  • 相关阅读:
    Makefile中的ifeq 多条件使用
    Android引入动态库so的方法
    在Win10上使用Visual Studio2015的Android模拟器
    linux下insmod模块出现“Invalid parameters"
    在干净的ubuntu 14.10上编译Qemu2.2.0的过程
    Windows下struct和union字节对齐设置以及大小的确定(一 简介和结构体大小的确定)
    C++类中一个构造函数调用另一个构造函数
    用汇编语言角度来理解C语言的一些问题
    TCP协议的安全性分析
    MySQL入门,第四部分,学会创建、删除表
  • 原文地址:https://www.cnblogs.com/zhangshiwen/p/6030011.html
Copyright © 2011-2022 走看看