Webサイトでbashスクリプトを実行中に問題が発生する

Webサイトでbashスクリプトを実行中に問題が発生する

私はちょうど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>"

おすすめ記事