天使と悪魔選手権

cronのエラー出力ファイルをshファイルに下記のように書いています。

#!/bin/sh
cd /var/www/html/test/
php -f test.php > result.txt

いままでresult.txtのファイルサイズは0Bだったのですが、test.phpの内容が変更後は2Bになり、2行の改行だけが記述されるようになりました。

result.txtにエラー表示ではなく、改行だけ書き込まれる理由はどんなものがありうるでしょうか。

A 回答 (1件)

test.php の <?php ... ?> の前後にあるものは、そのまま出力されます。



例えば、改行コードや、UTF-8 の BOM付き は、そのまま出力に出ます。

UTF-8 の場合は BOM無し で保存します。「 ?> 」は書かなくてよいです。

vi エディタで編集すると、最終行は改行で終わります。vi エディタで編集する場合は要注意です。

ついでに言うと、「 > 」は標準出力だけです。標準エラー出力もファイルに保存したい場合は、次のように書きます。

php -f test.php > result.txt 2>&1
    • good
    • 0
この回答へのお礼

ありがとうございました!
「<?php ... ?> の前後にあるものは、そのまま出力されます」でした。
おかげですっきりしました。

また、「標準エラー出力もファイルに保存したい場合」もアドバイスありがとうございます。

お礼日時:2019/01/21 20:41

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


おすすめ情報