站长资讯网
最全最丰富的资讯网站

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命令的使用介绍

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号