• 締切済み

シェルについて

以下のような「プロセスをkillするシェル」を作成しています。 そこで質問なのですが、プロセスが死んだら繰り返しを抜ける ようにしたいと考えているのですが、どのようにすれば実現できるのか 分かりません。 どなたかご存知の方がいらっしゃれば教えていただきたいです。 申し訳ありませんが、宜しくお願いいたします。 #!/bin/csh # 変数定義 set cnt = 3 #リトライカウンタ set i = 1 # ループカウンタ #aaaをkill while ( $i <= $cnt ) ps -ef | grep -v grep | grep aaa | \ nawk '{if(match($NF,"aaa") == 1){system("kill " $2);print "kill: " $2}}' ps -ef | grep -v grep | grep aaa| \ nawk '{if(match($NF,"aaa") == 1){system("kill -9 " $2);print "kill: " $2}}' @ i = $i + 1 end

みんなの回答

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.1

これだけ意味不明な物を作れるなんて、一つの才能かもしれない。ループの必要性も感じられないし、抜け方もわからない? それがなぞだ。それよりも、作る気があるのだろうか? なぞだ。少しはC-Shellならう気があるのだろうか。 $i <= $cnt にすればいいわけだよね。 もう少し、シンプルにかこうね。対象を探したら検証して、リスト化してからKill。 同じサブブロックでリスト検証で終了を確認。ループが入る余地がない。アルゴリズムを考えてからコーデングする癖をつけよう。

関連するQ&A