dポイントプレゼントキャンペーン実施中!

例えば、top コマンドは画面上に内容を表示し続けます。
ユーザが Ctrl-C をキータイプしない限り、プロンプトには戻りません(他のコマンドをタイプしたりはできません)。

そのようなコマンドを使った、次のようなシェルスクリプトの作成を考えています:
(1) top コマンドの結果をファイル等にリダイレクトやパイプで渡す
(2) (1) のコマンドは終了させ、
(3) 次の処理へ続く...

[Q1] もちろん、top & とやればプロンプトにはすぐ戻りますが、別途 kill してやる必要があります。
   面倒な気がするので、他に方法があればご教示ください。
[Q2] 面倒でない方法があればお教えください(もしくはこれを調べろ/参照しろ、などでも助かります)。
[Q3] また、このようなタイプのコマンドに呼び方があればお教えください。

※ とくに top コマンドを使う必要があるのではなく、
  他の同様のプロンプトに戻らないコマンドでも通用することを知りたいと思っています
※ 可能であればシェルに依存しないものが望ましいと考えています。
  現在は ksh を使用していますが、bash/tcsh でも解決方法があればお教えください。

説明が下手くそで恐縮ですが、よろしくお願いします。

A 回答 (3件)

top に限らず、シェルスクリプトから起動した外部コマンドは、


シェル変数 $! で直前に起動したプロセスIDを取得できるので、
適当な処理の後、kill することも出来ますね。
タイミングが難しいけど。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/10/12 10:20

例に上げているtopコマンドだとqを押下でも終了するので



# echo "q" | top

というようにするとか。
    • good
    • 1

この手のコマンドは、大抵オプションで表示回数を設定できるかと思います。


(手元にSoralisのマシンが無いので確認できないのですが、linuxだと
top n 表示回数
のようなオプションがあるようです。)

一度、topのマニュアルを参照されてはいかがでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A