« 我、思う、ゆえに、我あり。 | トップページ | 憧れ »

2007/10/07

お遊び、ps and pgrep

pgrep(1)を使ったスクリプトです。いつもは、
% ps -f -p `pgrep -d, [some cmd]`
とやっていたのですが、このスクリプトなら、多少時間が節約でします。
3時間、掛かりましたが、kshの勉強になりました。

pgrep(1) is a cool command, but it's not efficiant to type the line above, so I wrote a little script like below. I'm not a ksh expert, and it took 3 hours to finish it. But it was good learning to me.

isamu@yosemite bin: gps vi
   PID TTY         TIME CMD
  2186 pts/3       0:00 vi
isamu@yosemite bin: gps -f vi
     UID   PID  PPID   C    STIME TTY         TIME CMD
   isamu  2186  1550   0 19:18:15 pts/3       0:00 vi gps
isamu@yosemite bin: gps -f -L httpd
     UID   PID  PPID   LWP  NLWP   C    STIME TTY        LTIME CMD
    root   553     1     1     1   0   Oct 05 ?           0:31 /usr/apache/bin/httpd
  nobody   554   553     1     1   0   Oct 05 ?           0:00 /usr/apache/bin/httpd
  nobody   555   553     1     1   0   Oct 05 ?           0:00 /usr/apache/bin/httpd
  nobody   556   553     1     1   0   Oct 05 ?           0:00 /usr/apache/bin/httpd
  nobody   557   553     1     1   0   Oct 05 ?           0:00 /usr/apache/bin/httpd
  nobody   558   553     1     1   0   Oct 05 ?           0:00 /usr/apache/bin/httpd

isamu@yosemite bin: cat gps
#!/usr/bin/ksh -p
#grep ps by Isamu Shigemori
#
# note: To put cmd arguments with a hyphen(-) into an array,
# I used sed to put backlslash in front of the arguments

n=$(($# -1))
set -A a $(echo $@ |sed -e 's/-/\\-/g')

last=${a[$n]}
a[$n]=

ps $(echo ${a[*]} |sed -e 's/\\//g') -p $(pgrep -d, $last)

isamu@yosemite bin:

|

« 我、思う、ゆえに、我あり。 | トップページ | 憧れ »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 我、思う、ゆえに、我あり。 | トップページ | 憧れ »