• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:topコマンドでバッチモードが使えない。)

topコマンドバッチモードが使えない?

このQ&Aのポイント
  • MacOSXのSnowLeopardでtopコマンドのバッチモードが使用できないですか?
  • スクリプトで使用するためにはバッチモードが必要なのですが、実行するとエラーメッセージが表示されます。
  • どのようにバッチモードで実行する方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • fmysh
  • ベストアンサー率79% (27/34)
回答No.4

Mac OS X の top コマンドは動作モードは non-logging(デフォルト) と logging があり、 他のOSでの interactive と batch モードに相当します。 logging モードで起動するには "top -l サンプリング数" のように指定します。 > $ top < /dev/null | grep ^Load > でLoadが先頭にある行だけを取れるはずなんですけど、 > 何も取れません。 top を non-loggingモードで動かすと、画面制御コードが混ざったものが標準出力に流れるので、テキスト行指向の grep では引っかからないことも起こるでしょう。 パイプに繋ぐならば、logging モードを明示的に指定すべきです。 % top -l 1 |grep '^Load' Load Avg: 0.40, 0.46, 0.48 今回のように 同じ top という名前のコマンドでも、OS によって挙動の違うものになっていることもままあります。 特定のコマンドに関することならば、そのコマンドのマニュアルに最初に当たるべきでしょう。 コマンド組み合わせて望みの動作をさせる方法を身につけたいということならば、UNIX の入門書やシェルの解説本を読み通して、定番の技法を知っておくのが良いと思います。

hurikake
質問者

お礼

ありがとうございます。 logging モードがあったのですね。 非常に助かりました。

その他の回答 (3)

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.3

> Load Avgの行にあるCPU使用率やPhysMemの行にある情報を知りたいのです。 なるほど。そのあたりの話を、前回の質問で補足にでも書いていただければ話が早かったのですが… > こうゆうコマンドの使い方はどうやって調べたらたどり着くのですか? > qはつけてもつけなくても結果は一緒でしたが、何のqなんでしょうか? top コマンドは「qキーで終了」するので、その「q」です。 ユーザーの操作で「qを押す」かわりに、リダイレクトで「q」を送り込めばいいだろう、 というだけの思いつきです。 こちらで試したところ、qを送らなくてもいいというか、 入力がリダイレクトされていた場合、入力が終わった時点でtopは終了するようですので、 単に top < /dev/null | grep … で十分だと思います。

hurikake
質問者

お礼

本当にありがとうございます。 すいません。もうひとつ質問させてください。 $ top < /dev/null | grep ^Load でLoadが先頭にある行だけを取れるはずなんですけど、 何も取れません。 正規表現が使えないのかよくわからないですが、 1行だけ抜き出す方法はないでしょうか?

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

前回の同様な質問に対しての回答と同じですが、 ロードアベレージを知りたいだけなら、uptime コマンドでは何故ダメなのでしょうか? uptime コマンドは、ロードアベレージを表示するためのコマンドです。 ロードアベレージを知りたいのにtopコマンドを使うのは 無意味にプロセス情報を取ったりして無駄が多すぎます。 それでも、どうしても uptime コマンドではなく、top コマンドにこだわるのでしたら、 echo q | top ではどうですか?

hurikake
質問者

お礼

ありがとうございます。 ロードアベレージを知りたいんじゃなくて、 Load Avgの行にあるCPU使用率やPhysMemの行にある情報を知りたいのです。 echo q | top はまさにやりたかったことです。 こうゆうコマンドの使い方はどうやって調べたらたどり着くのですか? qはつけてもつけなくても結果は一緒でしたが、何のqなんでしょうか? 何はともあれありがとうございました。

  • gtx456gtx
  • ベストアンサー率18% (194/1035)
回答No.1

>$ top -b >invalid option or syntax: -b エラーメッセージも表示されているのに、ここで質問している質問者様が使うコマンドではないと思います。 もう少し勉強してからご利用下さい。

関連するQ&A