Ubuntu 12

何かこれは違うよな…と思いつつ実行。何かが間違っている。

root@niha-pc:/home/niha# ps | ruby -e "puts $<.select{|l|l.split.last=='ruby'}.map{|l|exec 'kill -SIGKILL '+l.split.first}"
[2] Killed ruby

ダメじゃん。一個目のpidをkillしたところでruby止まる。あとputsいらんだろ。
段々間違った方向に進んでいくゴルファー。

root@niha-pc:/home/niha# ps | ruby -e "exec('kill -SIGKILL '+$<.select{|l|l.split.last=='ruby'}.map{|l|l.split.first}*' ')"
Killed

あれーなんでーと思ってexecせずにputsしたら…

kill -SIGKILL 4906 4911 5581

ああ多分これ自分も殺しちゃってるんだ。

root@niha-pc:/home/niha# ps | ruby -e "puts('kill -SIGKILL '+$<.select{|l|l.split.last=='ruby'}.map{|l|l.split.first}*' ');puts $$"
kill -SIGKILL 4906 4911 5700
4643

Rubyグローバル変数$$がbashのpid返しやがる。ふざけろ!仕方ないので一番最後が現在のrubyのpidだろうと決め打ち。

root@niha-pc:/home/niha# ps | ruby -e "a=$<.select{|l|l.split.last=='ruby'}.map{|l|l.split.first};a.pop;exec('kill -SIGKILL '+a*' ')"
[4]- Killed ruby -e "print while gets"
[5]+ Killed ruby -e "print while gets"
root@niha-pc:/home/niha# ps
PID TTY TIME CMD
4642 pts/0 00:00:00 su
4643 pts/0 00:00:00 bash
5740 pts/0 00:00:00 ps

さらばruby……!!!!11
誰かもっといい方法教えてください。