タグ付けされた質問 「stdout」

stdoutは、プロセスのデフォルトの出力ファイル記述子の名前です。`stdout`について特別なことは何もないので、このタグは*使用しないでください*。出力のリダイレクト方法に関する質問には[io-redirection]タグを使用し、ファイル記述子の管理方法に関する質問には[file-descriptors]を使用し、ファイルロックの質問には[lock]を使用し、一般的な質問には[files]を使用しますファイル操作。

9
エレガントな方法で永遠に何もしない方法は?
に役立つ情報を生成するプログラムstdoutがありますが、からも読み取りますstdin。標準入力に何も提供せずに、標準出力をファイルにリダイレクトしたい。これまでのところ、とても良い:できること: program > output ttyでは何もしません。 ただし、問題はこれをバックグラウンドで実行することです。私が行った場合: program > output & プログラムは中断されます(「中断(tty入力)」)。 私が行った場合: program < /dev/null > output & EOFに達するため、プログラムはすぐに終了します。 私が必要なのはprogram、無期限に何もせず、読まない何かにパイプすることstdinです。次のアプローチが機能します。 while true; do sleep 100; done | program > output & mkfifo fifo && cat fifo | program > output & tail -f /dev/null | program > output & しかし、これは非常にいものです。そこ持ち(言い換えために「無期限に、何もしない」ために、標準のUnixユーティリティを使用して、エレガントな方法であることをman …

5
進捗レポート/ログ情報はstderrまたはstdoutに属しますか?
進捗レポートとログ情報(「Doing foo; foo done」など)を印刷する場所に関する公式のPOSIX、GNU、またはその他のガイドラインはありますか?個人的には、標準エラー出力にリダイレクトして、プログラムの実際の出力のみを取得できるように、標準エラー出力に書き込む傾向があります。最近、進捗レポートは実際にはエラーではなく、エラーメッセージのみがstderrに出力されるため、これは良い方法ではないと言われました。 両方のポジションが理にかなっており、もちろん、あなたがしていることの詳細に応じてどちらかを選択することができますが、これについて一般的に受け入れられている標準があるかどうか知りたいです。POSIX、GNUコーディング標準、またはその他の広く受け入れられているベストプラクティスのリストに特定のルールを見つけることができませんでした。 同様の質問がいくつかありますが、これらは正確な問題に対処していません。 シェルスクリプトでstderrへのリダイレクトを使用する場合:受け入れられた答えは、私がする傾向があることを示唆しています。ただし、これはユーザーの意見として提示されていますが、引数によってサポートされています。 使用法メッセージはstderrまたはstdoutに送信する必要がありますか?:これはヘルプメッセージに固有ですが、GNUコーディング標準を引用しています。これは私が探している種類のもので、ヘルプメッセージだけに制限されていません。 それでは、進捗レポートやその他の情報メッセージ(プログラムの実際の出力の一部ではない)を印刷する場所に関する公式ルールはありますか?
75 posix  stdout  gnu  stderr  standard 

6
あるサーバーの標準出力を別のサーバーの標準入力にパイプできますか?
stdoutあるCentOSサーバーではstdin、別のCentOSサーバーでパイプする必要があります。これは可能ですか? 更新 ScottPack、MikeyB、およびjofelにはすべて有効な回答があります。私の質問ではセキュリティを要件として指定していませんが、安全であることは常に良いことだからです。ただし、他の2人のフェローの提案も有効です。
74 pipe  stdout  stdin 

6
STDERRとSTDOUTを異なる色で印刷するようにシェルを構成できますか?
端末を設定したいのでstderr、とは異なる色で印刷されstdoutます。たぶん赤。これにより、2つを区別しやすくなります。 これを設定する方法はあります.bashrcか?そうでない場合、これも可能ですか? 注:この質問はと合併した他を求めているstderr、stdout とユーザー入力のエコーで出力されるように3色展開。回答はどちらの質問にも対応している可能性があります。

4
Python stdoutをすぐにファイルに書き込む
Pythonスクリプトからテキストファイル(python script.py > log)にstdoutを書き込もうとすると、コマンドの開始時にテキストファイルが作成されますが、Pythonスクリプトが終了するまで実際のコンテンツは書き込まれません。例えば: script.py: import time for i in range(10): print('bla') time.sleep(5) で呼び出されpython script.pyた場合、5秒ごとにstdoutに出力されますが、を呼び出した場合python script.py > log、スクリプトが終了するまでログファイルのサイズはゼロのままです。スクリプトの進行状況を追跡できるように、ログファイルに直接書き込むことは可能tailですか(例:を使用)? 編集それpython -u script.pyはトリックを行うことが判明し、stdoutのバッファリングについては知りませんでした。
51 shell  python  stdout 

5
変更中にファイルの内容を出力する
ファイルの内容を変更しながら出力したい。たとえば、ファイルがfoobarあり、次のようにした場合: magic_command foobar 現在の端末には、ファイルの内容を表示しなければならない待つ私は^ Cを押すと、私は知らない、まで。 その後、別の端末から私がする場合: echo asdf >> foobar 最初の端末には、元のファイルの内容に加えて、新しく追加された行が表示されるはずです(もちろん、^ Cを押さなかった場合)。 Linuxを調べて学びたいので、これを宿題とするつもりですが、それは宿題ではなく、単なる私の好奇心です。
47 terminal  tail  stdout 


6
コマンドをだまして、出力が端末に送信されると考えるようにする方法
出力が端末に送信されるときに動作を変更するコマンド(色付き出力の生成など)が与えられた場合、変更された動作を維持しながら、その出力をパイプラインでどのようにリダイレクトできますか?そのためのユーティリティが存在する必要がありますが、私は知りません。 などの一部のコマンドにはgrep --color=always、動作を強制するオプションフラグがありますが、問題は出力ファイル記述子のテストのみに依存するプログラムの回避方法です。 問題があれば、私のシェルはbashLinux上にあります。
38 shell  pipe  utilities  stdout  pty 

4
vimエディターを呼び出し、出力をbashにパイプする方法
テキストを作成して、そのテキストを別のコマンドにパイプする必要がある場合があります。私の通常のワークフローは次のようになります。 vim # I edit and save my file as file.txt cat file.txt | pandoc -o file.pdf # pandoc is an example rm file.txt これは面倒で、bashスクリプトを学習しようとしているので、エディターを起動するコマンドを作成し、エディターがパイプを閉じるとエディターの出力をstdoutに書き込むことでプロセスをより簡単にしたいと思います。その後、コマンドをとして実行できるようになりますquickedit | pandoc -o file.pdf。 これがどのように機能するかはわかりません。上記の正確なワークフローに加えていくつかの追加を行うことで、これを自動化する関数を既に作成しました。ファイル名として機能するランダムな文字列を生成し、関数が呼び出されたときにそれをvimに渡します。ユーザーがファイルを保存してvimを終了すると、関数はファイルをコンソールに出力してからファイルを削除します。 function quickedit { filename="$(cat /dev/urandom | env LC_CTYPE=C tr -cd 'a-f0-9' | head -c 32)" vim $filename cat $filename rm …
34 vim  pipe  stdout 


8
ファイルの内容を標準出力に出力するコマンド?
catこれを実行できることはわかっていますが、その主な目的は、コンテンツを表示するだけでなく連結することです。 また、私は知っているlessとmore、私は何かの簡単な(探していないページャだけで、端末にファイルの内容を出力)し、そのようなことがあれば、それは、このために特別に作られています。
28 cat  less  stdout 

3
ファイル記述子のコピーなしでstdoutとstderrを同じファイルにリダイレクトするのは安全ですか?
空のディレクトリから始めます。 $ touch aFile $ ls aFile 次にls、2つの引数があり、そのうちの1つはこのディレクトリにありません。両方の出力ストリームをという名前のファイルにリダイレクトしますoutput。私が使う>>同時に書くことを避けるためします。 $ ls aFile not_exist >>output 2>>output $ cat output ls: cannot access 'not_exist': No such file or directory aFile うまくいくようです。このアプローチには危険がありますか?

2
bashスクリプトで、stdoutを行ごとにキャプチャする方法
bashスクリプトでは、長いコマンドの標準出力を1行ずつキャプチャして、初期コマンドの実行中にそれらを分析および報告できるようにします。これは私がそれを行うことを想像できる複雑な方法です: # Start long command in a separated process and redirect stdout to temp file longcommand > /tmp/tmp$$.out & #loop until process completes ps cax | grep longcommand > /dev/null while [ $? -eq 0 ] do #capture the last lines in temp file and determine if there is new …
26 bash  process  stdout 

6
Pythonプログラムを適切なUNIXツールのように動作させるにはどうすればよいですか?
いくつかのPythonスクリプトがあり、それらの書き直しに取り組んでいます。私はそれらすべてに同じ問題を抱えています。 適切なUNIXツールのように動作するようにプログラムを記述する方法は明らかではありません。 これは $ cat characters | progname この $ progname characters 同じ出力を生成するはずです。 Pythonで見つけられた最も近いものはfileinputライブラリでした。残念ながら、Pythonスクリプトを書き換える方法は実際にはわかりません。これらはすべて次のようになります。 #!/usr/bin/env python # coding=UTF-8 import sys, re for file in sys.argv[1:]: f = open(file) fs = f.read() regexnl = re.compile('[^\s\w.,?!:;-]') rstuff = regexnl.sub('', fs) f.close() print rstuff ファイル入力ライブラリは、stdinがある場合はstdinを処理し、ファイルがある場合はファイルを処理します。しかし、それは単一行にわたって反復します。 import fileinput for line in fileinput.input(): process(line) 私は本当にそれを得ません。あなたが小さなファイルを扱っている場合、またはあなたがファイルに多くのことをしていないなら、これは明白に見えるかもしれません。しかし、私の目的では、上記のようにファイル全体を開いて文字列に読み込むよりもはるかに遅くなります。 …

3
stdoutの出力速度を制限するにはどうすればよいですか?
CentOS 5.7を実行していますが、バックアップファイルをにダンプするオプションがあるバックアップユーティリティがありますstdout。バックアップファイルはかなり大きい(数ギガバイト)。ターゲットはSSHFSファイルシステムです。帯域幅を独占し、ネットワークのパフォーマンスを低下させないために、データが「ディスク」に書き込まれる速度を制限したいと思います。 stdoutバイト数に基づいて機能を制限するにはどうすればよいですか?たとえば、プロセスの書き込み能力を約768Bpsに制限します。
24 hard-disk  io  stdout 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.