私はちょうどbashでスクリプトを作成し始めました、そしてそれらのいくつかを私のWebサーバー(私の仮想Debian 6.0.4コンピュータにあります)に入れました。
このコンピュータにlighttpdをインストールしました。たとえば、次のコマンドを実行した場合:
TOP=`top -n 1`;
PS=`ps aux`;
echo "that's top\n" $TOP;
echo "ps\n" $PS;
テキストは行区切りなしで書かれている$TOP
ので、何も印刷されません(すべて1行に書かれています)。$PS
これをどのように変更できますか?
ベストアンサー1
プレーンの出力は、top
端末以外のデバイスに表示するのには適していません。-b
プレーンテキスト出力を取得するには、このスイッチを使用する必要があります。
そして、行末文字は実行中のシェルによって削除されます(スペースで置き換えられます)。この出力を変数に保存する理由はなく、必要に応じてこれらのコマンドを実行できます。
データをWebブラウザに返すとします。この場合、出力を正しく表示するには最小限のHTML形式を実行する必要があります。
次のようにしてみてください。
#! /bin/sh
echo -e "Content-type: text/html\n"
echo "<html><body>"
echo "<h1>top</h1>"
echo "<pre>"
top -b -n 1
echo "</pre>"
echo "<h1>ps</h1>"
echo "<pre>"
ps aux
echo "</pre>"
echo "</body></html>"