2017-06-22 16 views
0

私はコマンドライン引数を受け入れる第三者ソフトウェアを持っています。出力をファイルにパイプしたい。私は出力をパイプすると、コマンドライン引数を読み込む処理をめちゃくちゃにされていることを信じていbash:パイプからコマンドを分離する

./run_third_part.py 

場合

./run_third_part.py &> log 

が、それは動作します:私がしようとした場合、コードがハングアップし、いくつかの不可解な理由のためにすることを私が発見しました他のアイデアは大歓迎ですが。どうすればpipeコマンドからプログラムを分離できますか? (私は括弧のいくつかの並べ替えを置くことについて考えていた。)

+0

このプログラムは入力から何かを読みますか? – ArturFH

+0

ですが、入力も受け付けません。 – simona

+0

「コマンドライン引数を受け入れる」と言ってください。これらはどこで指定していますか? –

答えて

-1

あなたはサブシェルを作成しようとすると、スクリプトを実行することができ、

bash$ `./run_third_part.py` &> log 

`おそらく" (単一引用符)

+1

しないでください。この答えは間違っていて、run_third_part.pyの出力に応じて危険です。 – ArturFH

+0

私はローカルシステムで同様のシナリオを試してみましたが、サブシェルで実行してログ全体の内容を取り込むことも可能であるという結論に達しました。 どうすれば危険なのか説明してください。 – Dipankar

+0

コマンドを実行しようとしてください。 '\' echo ls \ ''。そして、現在のディレクトリのバックアップを行い、 'ls'を' rm * 'に置き換えてください。 – ArturFH

0

ではありません注意してくださいスクリプトは対話型プロンプトでの入力を待機しています。これを回避する最も簡単な方法は、通常入力を与えることです:

./run_third_part.py < /dev/null &> log 
関連する問題