0

以下に示すように top コマンドを実行し、出力をファイルに保存したかったのです。

xyz.sh

#!/bin/sh 
while :
do
top -n 1 
sleep 5
done

コードを実行すると、実行されて出力が正常に生成されます。

sh xyz.sh 

しかし、バックグラウンドでコードを実行しようとすると、殺されます。

sh xyz.sh > xyz.log &

どうすれば最高の出力をキャプチャできますか?

4

1 に答える 1

4

cli コマンドは、top他のユーティリティで慣れているものとは異なる動作をします。これは、stdin からの読み取りと stdout への書き込みのような一般的なフィルターでは機能しないためです。代わりに、端末をエミュレートします。これは、標準出力に出力が書き込まれないため、出力を単純にリダイレクトできないことを意味します。

manページを確認してください(常に行う必要があります...)。-bその動作を変更するフラグに気付くでしょう。これにより、試したことを実行できます。

于 2013-08-03T17:30:29.370 に答える