linux下命令执行结果作为其他命令输入参数
2016-06-01 10:56
483 查看
1. 通过ps命令获取对应程序的pid
比如这里要获取redis-server这个进程的pid# ps -ef | grep redis-server root 60415 1 93 Feb17 ? 8-04:12:36 redis-server *:6379 root 61823 59236 0 01:26 pts/1 00:00:00 grep --color=auto redis-server
但是我们要获取具体的60415这个值,可以通过下面命令来获取命令
ps -ef | grep redis-server | grep -v grep | awk '{print $2}'
简单介绍awk,就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
2.把获取的pid作为其他命令的输入
这里执行一个名字为test的C程序,需要把pid作为输入参数。方法1:
./test `ps -ef | grep redis-server | grep -v grep | awk '{print $2}'`
符号:` `
名称:反引号,上分隔符
位置:反引号(`)这个字符一般在键盘的左上角,数字1的左边,不要将其同单引号(’)混淆
作用:反引号括起来的字符串被shell解释为命令行,在执行时,shell首先执行该命令行,并以它的标准输出结果取代整个反引号(包括两个反引号)部分
方法2:
ps -ef | grep redis-server | grep -v grep | awk '{print $2}' | xargs ./test
命令:xargs
xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据。xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。
参考1:http://my.oschina.net/leopardsaga/blog/112335
参考2:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html
相关文章推荐
- Linux SSH命令大全
- 开发人员必知的8个常用linux命令
- 11个有用的Linux命令
- Linux系统管理常用命令及参数说明中文版
- Linux系统信息查看常用命令
- 致命的7个Linux命令
- 在PHP中运行Linux命令并启动SSH服务的例子
- Ubuntu 常用命令集
- linux下查找命令汇总(转)
- ctags --- 每天一个 Linux 命令
- Linux中文件的压缩与解压缩命令操作示例集锦
- 全面解析Linux的grep命令中正则表达式的用法
- Linux中使用grep命令搜索文件名及文件内容的方法
- Linux中文本处理命令sed的使用示例分享
- 详解Linux系统中su和sudo命令的用法
- 举例讲解Linux下grep命令的精彩使用技巧
- Linux中控制文件权限修改的chgrp和umask命令用法
- Linux中的文件压缩命令tar与rar的用法总结
- Linux下用gzip和unzip命令来压缩和解压文件的用法
- Linux系统中安装使用Bzip2来压缩文件的方法讲解