xargs命令详解

linux命令可以从命令行参数或标准输入读取要处理的内容,例如cat和grep命令:

echo 'Hello world' | cat test.php

echo 'Hello world' | 会通过管道将标准输出'Hello world'导入到 cat 的标准输入,但cat不会从它的标准输入中读入要处理的内容,而是输出test.php的内容,如果test.php不存在则cat命令报告该文件不存在。因为基本上linux的命令是先从命令行参数中获取参数,然后从标准输入中读取,如:

echo 'Hello world' | cat

这条命令会输出 'Hello world' 字符串。

Linux中很多程序是不处理标准输入的,例如 kill , rm 这些命令如果命令行参数中没有指定要处理的内容,则不会默认从标准输入中读取:

echo '8521' | kill

这条命里是不能执行的。

但是有时候我们的脚本需要 echo '8521' | kill 这样的效果,筛选出符合某条件的进程pid然后结束。有下面这几种解决办法:

1. 

kill `ps -ef | grep 'rabbitmq'`

    
这种形式实际上是拼接字符串得到的命令,其效果类似于  kill $pid。

2.

for procid in $(ps -aux | grep "rabbitmq" | awk '{print $2}'); 
    do 
        kill -9 $procid; 
    
    done 

与上一个类似,区别在于循环的kill掉多个进程。

3.

ps -ef | grep 'rabbitmq' | xargs kill  


xargs命令可以通过管道接受字符串,并将接收到的字符串通过空格分割成许多参数,然后将参数传递给其后面的命令,作为后面命令的命令行参数

xargs与管道的区别:

echo '--help' | cat 

输出:
--help

echo '--help' | xargs cat 

输出cat命令的使用介绍

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值