• 締切済み

top などのプロンプトに戻らないコマンドの終了

例えば、top コマンドは画面上に内容を表示し続けます。 ユーザが Ctrl-C をキータイプしない限り、プロンプトには戻りません(他のコマンドをタイプしたりはできません)。 そのようなコマンドを使った、次のようなシェルスクリプトの作成を考えています: (1) top コマンドの結果をファイル等にリダイレクトやパイプで渡す (2) (1) のコマンドは終了させ、 (3) 次の処理へ続く... [Q1] もちろん、top & とやればプロンプトにはすぐ戻りますが、別途 kill してやる必要があります。    面倒な気がするので、他に方法があればご教示ください。 [Q2] 面倒でない方法があればお教えください(もしくはこれを調べろ/参照しろ、などでも助かります)。 [Q3] また、このようなタイプのコマンドに呼び方があればお教えください。 ※ とくに top コマンドを使う必要があるのではなく、   他の同様のプロンプトに戻らないコマンドでも通用することを知りたいと思っています ※ 可能であればシェルに依存しないものが望ましいと考えています。   現在は ksh を使用していますが、bash/tcsh でも解決方法があればお教えください。 説明が下手くそで恐縮ですが、よろしくお願いします。

みんなの回答

  • qaaq
  • ベストアンサー率36% (146/404)
回答No.3

top に限らず、シェルスクリプトから起動した外部コマンドは、 シェル変数 $! で直前に起動したプロセスIDを取得できるので、 適当な処理の後、kill することも出来ますね。 タイミングが難しいけど。

mishmash
質問者

お礼

ありがとうございます。 $! というのは勉強不足で知りませんでした。 タイミングはとりあえず sleep を使ってみて、動作しました。あまり確かな方法でないかもしれませんが...

  • Lean
  • ベストアンサー率72% (435/603)
回答No.2

例に上げているtopコマンドだとqを押下でも終了するので # echo "q" | top というようにするとか。

  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.1

この手のコマンドは、大抵オプションで表示回数を設定できるかと思います。 (手元にSoralisのマシンが無いので確認できないのですが、linuxだと top n 表示回数 のようなオプションがあるようです。) 一度、topのマニュアルを参照されてはいかがでしょうか。