[问题] 如何将bash的cmd存在变量中

楼主: Arton0306 (Ar藤)   2015-06-06 16:12:17
ps ux | grep 'ssh xxx' | grep -v 'grep'
ps ux | grep 'ssh xxx' | grep -v 'grep' | awk '{print $2};'
kill `ps ux | grep 'ssh xxx' | grep -v 'grep' | awk '{print $2};'`
想做类似上面的事
我想把第一行的指令存成变量 第2,3行就不用copy&paste
试了一阵子还是无法成功
简化到后来 发现
cmd="ps ux | grep 'vim'"
$cmd
这样的2行就无法成功
但是
cmd="ps ux"
$cmd
这样是可以的
目前的猜测是pipeline造成的
| 是bash的语法,但$cmd解析后就丢给了ps ps认不出 |
请问怎么写才能避免最前面3行的copy&paste呢?
作者: danny8376 (钓到一只猴子@_@)   2015-06-06 16:15:00
eval
作者: magicrex (JohnS)   2015-06-06 16:35:00
cmd=$(ps ux | grep vim)echo $cmd
作者: goldie (阿良)   2015-06-06 16:58:00
同一楼所述:cmd="ps ux | grep 'vim'"eval "$cmd"
作者: Nephom (SIT)   2015-06-07 00:54:00
cmd=`ps ux | grep 'vim'` <== 这样就好了
作者: danny8376 (钓到一只猴子@_@)   2015-06-07 17:07:00
他要存command 不是结果啊...虽然应该是不见得需要存指令就是
作者: Bencrie   2015-06-07 17:50:00
alias ?
作者: jokester (蛮王科科)   2015-06-07 22:19:00
可以function

Links booklink

Contact Us: admin [ a t ] ucptt.com