如何將bash的cmd存在變數中 - Linux

Table of Contents

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呢?

--

All Comments

Mia avatarMia2015-06-08
eval
Valerie avatarValerie2015-06-10
cmd=$(ps ux | grep vim)
echo $cmd
Gilbert avatarGilbert2015-06-12
同一樓所述:cmd="ps ux | grep 'vim'"
Agnes avatarAgnes2015-06-13
eval "$cmd"
Lucy avatarLucy2015-06-15
cmd=`ps ux | grep 'vim'` <== 這樣就好了
Todd Johnson avatarTodd Johnson2015-06-19
他要存command 不是結果啊...
Hedwig avatarHedwig2015-06-21
雖然應該是不見得需要存指令就是
Sierra Rose avatarSierra Rose2015-06-25
alias ?
Jack avatarJack2015-06-27
可以function