求神腿。。。。Shell脚本中如何使一条命令实现两条命令的功能(如下)
-
- 帖子: 9
- 注册时间: 2012-07-31 14:56
求神腿。。。。Shell脚本中如何使一条命令实现两条命令的功能(如下)
在linux命令中能不能用一条命令实现下面的功能
1 列出gedit运行的程序(ps aux |grep gedit)
2 根据第一条命令的返回值 kill -9 3231 (假设3231为第一条命令的结果中的pid)
通常咱们写shell脚本的时候会把第一个命令采用ps aux |grep agent_image |awk /-c/'{ print $2} 赋值到一个变量上,但是我现在不想使用变量,就是想直接让一条命令直接使用另外一条命令的结果。。。
求大腿,求大神,求赐教!!!
1 列出gedit运行的程序(ps aux |grep gedit)
2 根据第一条命令的返回值 kill -9 3231 (假设3231为第一条命令的结果中的pid)
通常咱们写shell脚本的时候会把第一个命令采用ps aux |grep agent_image |awk /-c/'{ print $2} 赋值到一个变量上,但是我现在不想使用变量,就是想直接让一条命令直接使用另外一条命令的结果。。。
求大腿,求大神,求赐教!!!
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 求神腿。。。。Shell脚本中如何使一条命令实现两条命令的功能(如下)
代码: 全选
kill -9 $(ps aux |grep agent_image |awk /-c/'{ print $2})
-
- 帖子: 9
- 注册时间: 2012-07-31 14:56
Re: 求神腿。。。。Shell脚本中如何使一条命令实现两条命令的功能(如下)
#!/bin/sh
res=`kill -9 $( ps aux |grep gedit |awk /-c/'{ print $2}')`
额,神,貌似不对。。。 我试着kill gedit 你在本地试试
不过依然感谢
res=`kill -9 $( ps aux |grep gedit |awk /-c/'{ print $2}')`
额,神,貌似不对。。。 我试着kill gedit 你在本地试试
不过依然感谢
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 求神腿。。。。Shell脚本中如何使一条命令实现两条命令的功能(如下)
那是因为你给的命令不对。应该是:china_fei 写了:#!/bin/sh
res=`kill -9 $( ps aux |grep gedit |awk /-c/'{ print $2}')`
额,神,貌似不对。。。 我试着kill gedit 你在本地试试
不过依然感谢
代码: 全选
#!/bin/sh
kill -9 $(ps aux |grep gedit |awk '{print $2}')
-
- 帖子: 9
- 注册时间: 2012-07-31 14:56
Re: 求神腿。。。。Shell脚本中如何使一条命令实现两条命令的功能(如下)
果然是神。。。。
不过,额,神可不可以再问下
这个东西运行之后会出现 bash: kill: (5660) - 没有那个进程
虽然不影响我 上来就9信号的目的。。。
你能给我解释下么,谢谢大神。。。。
不过,额,神可不可以再问下
这个东西运行之后会出现 bash: kill: (5660) - 没有那个进程
虽然不影响我 上来就9信号的目的。。。
你能给我解释下么,谢谢大神。。。。

- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 求神腿。。。。Shell脚本中如何使一条命令实现两条命令的功能(如下)
「没有那个进程」就是说没有你要找的进程嘛。china_fei 写了:果然是神。。。。
不过,额,神可不可以再问下
这个东西运行之后会出现 bash: kill: (5660) - 没有那个进程
虽然不影响我 上来就9信号的目的。。。
你能给我解释下么,谢谢大神。。。。
后边的没看太懂……
-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: 求神腿。。。。Shell脚本中如何使一条命令实现两条命令的功能(如下)
代码: 全选
ps aux |grep gedit |awk '{print $2}'
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: 求神腿。。。。Shell脚本中如何使一条命令实现两条命令的功能(如下)
对于你这个特定的任务,无需又是命令扩展又是管道的,直接用现成的命令更方便,pkill、skill、killall 都适合。
-
- 帖子: 9
- 注册时间: 2012-07-31 14:56
Re: 求神腿。。。。Shell脚本中如何使一条命令实现两条命令的功能(如下)
神,我自己又想了一个
ps aux | grep gedit |colrm 1 9|colrm 6|xargs kill -9
如果想只删除头一个进程的话
ps aux | grep gedit | head -n 1 | colrm 1 9 | colrm 6 | xargs kill -9
正确执行。。。。
我上面说的那个bash:kill....没有那个进程
我觉得7楼的解释是正确的。
谢谢大家的关注,谢谢各位大神的帮忙.
ps aux | grep gedit |colrm 1 9|colrm 6|xargs kill -9
如果想只删除头一个进程的话
ps aux | grep gedit | head -n 1 | colrm 1 9 | colrm 6 | xargs kill -9
正确执行。。。。
我上面说的那个bash:kill....没有那个进程
我觉得7楼的解释是正确的。
谢谢大家的关注,谢谢各位大神的帮忙.
-
- 帖子: 12
- 注册时间: 2009-12-05 8:35
Re: 求神腿。。。。Shell脚本中如何使一条命令实现两条命令的功能(如下)
反引号:执行命令,后使用AWK返回PID号,可以不用使用$()方式,fedora 16 x86-64,bash 4.2.10 awk4.0执行有效
kill -9 `ps aux | grep gedit | awk '$11 !~ /grep/{print $2}'`
(PS:$11是COMMAND所在的FIELD区域,这样可以避免出现grep的进程号,话说我一个用FEDORA来UBUNTU这里游荡会不会被人打。。。)
kill -9 `ps aux | grep gedit | awk '$11 !~ /grep/{print $2}'`
(PS:$11是COMMAND所在的FIELD区域,这样可以避免出现grep的进程号,话说我一个用FEDORA来UBUNTU这里游荡会不会被人打。。。)
上次由 noc_ken 在 2012-08-01 10:24,总共编辑 1 次。
-
- 帖子: 1318
- 注册时间: 2005-09-13 4:56
- 系统: Ubuntu Jammy Jellyfi
Re: 求神腿。。。。Shell脚本中如何使一条命令实现两条命令的功能(如下)
man pkill