[問題] 如何將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