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

stdinは、プロセスのデフォルトの入力ファイル記述子の名前です。`stdin`には特別なことは何もないので、このタグは*使用しないでください*。入力のリダイレクト方法に関する質問には[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 …

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

2
あとでEOFを引き起こすことなくプロセスの標準入力にデータをパイプする
ユーザーインタラクティブシェルを起動する実行可能ファイルがあります。シェルの起動時に、最初にいくつかのコマンドを挿入してから、ユーザーにインタラクティブセッションを許可します。私はこれを簡単に使用できますecho: echo "command 1\ncommand 2\ncommand3" | ./shell_executable これはほとんど機能します。問題は、コマンドのエコーが完了すると、プロセスのstdinにフィードしているエコーコマンドがEOFに達することです。このEOFにより、シェルはすぐに終了します(シェルでCtrl + Dを押したかのように)。 後でEOFを発生させずにこれらのコマンドをstdinに注入する方法はありますか?


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) 私は本当にそれを得ません。あなたが小さなファイルを扱っている場合、またはあなたがファイルに多くのことをしていないなら、これは明白に見えるかもしれません。しかし、私の目的では、上記のようにファイル全体を開いて文字列に読み込むよりもはるかに遅くなります。 …

1
Linux:stdoutとstderrをロガーにリダイレクトする方法は?
起動時に実行する必要のあるプログラムがあり、stdoutおよびstderrに出力があり、ロガーコマンドを使用してシステムログにリダイレクトします。私のスタートアップスクリプトには、次のものがあります。 / home / dirname / application_name -v | logger 2>&1& これはstdoutをsyslogにリダイレクトしますが、stderrがコンソールに来るので、コマンドを改良する必要があります。

3
前のコマンドがSTDOUTに書き込んでいる間に別のコマンドをSTDINに入力しても安全ですか?
おそらくこれは以前に回答されたのでしょうが、別の回答へのリンクを歓迎します... bash次のようなシェルコマンドを(シェルで)実行すると: make その後からの出力は、一方でmakeからでスクロールしているSTDOUTのmakeI型の場合は、コマンドmake checkキーを押しenter最初のコマンドの前には、とき、実行を終了するmakeコマンドが最終的に次のコマンドが終了しmake check、右アップし、実行を選択します。 私の質問は単純です: これは危険ですか? この種のラッシュタイピングにより、予期しない動作が発生する可能性はありますか? なぜこれが機能するのですか?
21 bash  shell  stdout  stdin 

3
mysqlコマンドラインにパスワードを渡す方法
foo.phpたとえばP455w0rd、使用しようとすると、MySQLパスワードがファイルに保存されます。 $ cat foo.php | grep '$dbpwd=' | cut -d '"' -f 2 | mysql -U root -p mydb -h friendserver Enter password: (holds) $ echo P455w0rd | mysql -u root -p mydb -h friendserver Enter password: (holds) 両方のオプションはまだパスワードを要求しますが、パスワードを送信する正しい方法は何stdinですか?
20 password  mysql  stdin 

3
nohup:入力を無視し、stderrをstdoutにリダイレクトする
nohup以下のように使用して、バックグラウンドでアプリケーションを開始しています- root@phx5qa01c:/bezook# nohup java -jar ./exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname phx5qa01c.phx.qa.host.com > exhibitor.out & [1] 30781 root@phx5qa01c:/bezook# nohup: ignoring input and redirecting stderr to stdout しかし、私はこのメッセージを見るたびに- nohup: ignoring input and redirecting stderr to stdout このメッセージが表示された場合、問題はありますか?それはどういう意味ですか、どうすれば回避できますか?

4
一部のコマンドが標準入力から読み取れないのはなぜですか?
パイプラインをいつ使用すべきなのか、使用すべきでないのはいつだろうか。 たとえば、pdfファイルを処理する特定のプロセスを強制終了するには、パイプラインを使用しても以下は機能しません。 ps aux | grep pdf | awk '{print $2}'|kill 代わりに、次の方法でのみそれを行うことができます。 kill $(ps aux| grep pdf| awk '{print $2}') または ps aux | grep pdf | awk '{print $2}'| xargs kill man bash(バージョン4.1.2)によると: The standard output of command is connected via a pipe to the standard input of command2. …
19 shell  pipe  arguments  stdin 

4
実際にコマンドである仮想ファイルを作成する
仮想ファイルを作成する方法はありますか。ファイルからの読み取りは実際にstdoutコマンドから読み取ります。ファイルへの書き込みstdinは、コマンドのacuallyへの書き込みですか? これまでのところinotifywait、ファイルの変更時にコマンドを呼び出し、ファイルからの入力を取得してファイルに書き戻すことで、これを処理しています。 inotifywaitただし、常に再起動する必要はありません(常に実行していることを確認する必要があります)。このファイルはおそらく週に2回しか使用しません。
18 files  stdin 

3
vim:コマンドライン引数による特定の構文の強制
PostgreSQLスキーマを簡単に読みたい場合、それをダンプしてstderrリダイレクトしvimます: pg_dump -h localhost -U postgres dog_food --schema-only | vim - これは与える: vim stdinから読み取るときにファイル名拡張子がないため、構文ハイライトスキーマはありません。したがって、以下を使用します。 :set syntax=sql 与えるもの: 私は怠zyな開発者なのでvim、コマンドライン引数を渡すことでSQL構文を強制的に使用したいと思います。データでset syntax=<whatever>開くたびに再入力する手間を省きstdinます。 vimコマンドライン引数を渡すことで構文を設定する方法はありますか?

3
「-」という名前のファイルを「小さく」するにはどうすればよいですか?
誤って名前-(たとえば、seq 10 > -)を持つファイルを作成しました。次にless、表示に使用しようとしましたが、ハングします。 less -からの入力を予期しているため、これが起こっていることを理解しstdinてい-ますので、ファイル名として解釈しません。試しましたless \-が、うまくいきません。 だから、lessそれ-がファイルであり、stdinではないことを示す方法はありますか? 私が得ることができる最高のものは: find -name '-' -exec less {} +
17 less  stdin 

3
標準出力から標準エラー出力へ?
あるプロセスのstdoutを別のプロセスのstdinに送信したいのですが、コンソールにも送信したいのです。たとえば、stdoutをstdout + stderrに送信します。 たとえば、私はgit edit次のエイリアスを持っています: git status --short | cut -b4- | xargs gvim --remote ファイル名のリストを画面とに送信したいのxargsですが。 だから、teeこれを行うようなユーティリティがありますか?次のようなことができるように: git status --short | \ cut -b4- | almost-but-not-quite-entirely-unlike-tee | \ xargs gvim --remote

1
プログラムを最初にパイプから読み取り、次にキーボードから読み取る
対話型プログラムを検討してくださいinteractive。このプログラムはかなり頻繁に実行する必要があり、実行するたびに最初のいくつかのコマンドは同じです。明らかに、これらのコマンドを何度も入力しなければならないのは苦痛です。これらのコマンド(改行で区切られている)をファイルに収集しましたcmd。これでcat cmd | interactiveコマンドを実行できます。問題は、一度cmd完全に読み込まれ、interactiveEOFを受信して​​終了することです。 私がやりたいことは、最初interactiveにパイプから読み取りを行い(明らかにinteractive < cmd許容範囲内です)、EOFを受信したら、代わりにキーボードから読み取りを開始します。
17 command-line  pipe  cat  stdin 

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