2016-12-29 17 views
-1

以下のコードperlのシステムエコー出力のリダイレクト

system(echo hi there >>log.txt); 

は正しくリダイレ​​クトするだけでなく、STDOUTに出力します。..ので、私は私のperlスクリプトを実行すると、私は

perl script.pl 
hi there 

、ログを参照してください。 txtファイルが更新されます。

質問:STDOUTではなく、ファイルを更新するにはどうすればよいですか。

注: ファイルハンドルを使用することを推奨しないでください。私はそれをしたくない理由があります。あなたがバッククォートを使用してコマンドを呼び出すことができます

+1

あなたのコードは有効ではありません(引用符がありません)ので、実行されません。また、 'perl -E 'システム(" echo hi there >> log.txt ");''が期待通りに動作するので、あなたのスクリプトはおそらく別のことをしています。私たちの手助けをしたい場合は、実際のコードを使用してください。 – Dada

答えて

0

`echo hi there >>log.txt`; 

すると結果はSTDOUTに印刷されたが、返されたので、あなたは変数に格納することができされることはありません。しかし、あなたはそれを無視することもできます。

+0

実際には私の最初のアプラックでしたが、何らかの理由で私が呼び出す.exeは、バッククックを使用して呼び出すときにハングすることがありますが、システム()で行うときにはハングしません。 システム また、エコーにバッククイックを使用することもできます。それは良い解決策かもしれません。 –

関連する問題