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

Unixパイプは、2つのプロセスのファイル記述子を接続します。パイプは、<unistd.h>で宣言されたPOSIX pipe()関数で作成されます。シェルは、「|」を使用してプロセス間にパイプを作成します。

3
Pipelineの前半でコマンドのPIDを取得する
inotifywaitディレクトリを監視し、変更が検出されたときにアクションを開始するために使用するbashスクリプトを書いています。何かのようなもの: inotifywait -m ... | while read f; do something; done inotifywaitはそれ自体で終了しないため、このスクリプトは停止しません。 したがって、私の計画は、inotifywaitプロセスのPIDを取得し、それをファイルに保存して、後で別のプロセスに強制終了させることでした。 inotifywait -m ... | { echo ??PID?? &gt; pid-file; while ... } しかし、私はPIDを取得する方法がわかりません。これを達成する簡単な方法はありますか?もう1つの方法は、シェルスクリプトのPIDを$$ファイルに保存してシェルスクリプト全体を強制終了することですが、whileループの後にいくつかのクリーンアップを実行したいと思いました。 私は使ってみましcoprocたが、うまくいくと思いますが、必要以上に複雑に思えます。
11 bash  pipe  pid 

1
どうやってhtmlをlynxにパイプするのですか?
コンソールからいくつかのajax呼び出しをテストしています。私はhtmlマークアップであるメタ情報ノイズを取り除き、コンテンツを読み取るのが好きなので、それをlynxなどのターミナルブラウザーにパイプします。 まだ: curl www.google.de | lynx lynxの新しいインスタンスを開くだけです。 したくない: curl www.google.de &gt; someFile.html &amp;&amp; lynx someFile.html
11 pipe  curl  html  stdin  lynx 

2
`ssh-copy-id`のstdinを介してパスワードを送信します
理想的にはを使用して、いくつかのID展開を自動化する必要がありssh-copy-idます。 私は標準入力を介してパスワードを提供しようとしていますが、これはフラグsshを使用することで可能になり-Sます。コマンドでフラグをssh使用するための追加オプションを送信できることは承知していますが、このフラグの使用例はmanページにありません。-ossh-copy-id だから私はssh-copy-id使用してstdin経由でSSHパスワードを渡そうとしました: $# echo $TMP_PASS | ssh-copy-id -p2222 -i key.pub user@host -o "-S" しかし、私が得るすべては: /bin/ssh-copy-id: ERROR: command-line: line 0: Bad configuration option: -s 編集: 私は標準入力を介してパスワードを提供しようとしていますが、これはフラグsshを使用することで可能になり -Sます。 このステートメントは間違っています。私は実際にこのフラグをsudo人から読んだことがあります。

3
LinuxでTCPトンネルを特殊文字デバイスとして公開することは可能ですか?
最近、QNXのドキュメントで、シリアルデバイス(dev/serX)を使用して、別々の物理マシン上のプロセス間でメッセージベースのIPCをセットアップできることがわかりました。 Linuxでシステム全体にTCP / UDPトンネル用の特別なデバイスを作成することは可能ですか?nc/ dev / somethingの下で公開されているstdin / stdoutのようなもの。 最後に、私はあるマシンでそのようなファイルに何かを書き、他のエンドでそれを受け取ることができるようにしたいです: #machine1: echo "Hello" &gt; /dev/somedev #machine2: cat &lt; /dev/somedev ncmanを調べましたが、stdio以外のioソース/宛先を指定するオプションが見つかりませんでした。

2
bashへの入力であるスクリプトに引数を渡す方法
現在、私はこのようなワンライナーを持っています: curl -fsSL http://git.io/vvZMn | bash スクリプトをダウンロードし、それをstdinファイルとしてbashに渡します。追加の引数を指定してこのスクリプトを実行したいと思いますprint。 たぶんこんな感じ? curl -fsSL http://git.io/vvZMn | bash -- print しかし、これは機能しません。
10 bash  pipe  curl  input 


2
すべての出力をPOSIXシェルの「ロガー」に送信する方法は?
私はで別々に標準出力と標準エラーを記録したいと思います.xprofile使用しますlogger。バッシュでは、次のようになると思います。 exec 1&gt; &gt;(logger --priority user.notice --tag $(basename $0)) \ 2&gt; &gt;(logger --priority user.error --tag $(basename $0)) POSIX /bin/sh互換の方法でそれをどのように行うのですか?
10 shell  pipe  posix 

3
パイプからmd5sumをチェックする
私はどのように機能するmd5sum --checkことになっているのか混乱しています: $ man md5sum -c, --check read MD5 sums from the FILEs and check them 私はファイルを持っています、それをパイプすることができますmd5sum: $ cat file | md5sum 44693b9ef883e231cd9f90f737acd58f - 明日ファイルの整合性を確認したい場合、md5sumがまだ残っている44693b9ef883e231cd9f90f737acd58fかどうかをどのように確認できますか? 注意 cat fileストリームかもしれません。だから私は私の例のようにパイプを使いたいのですが、ではありませんmd5sum file。
10 pipe  hashsum 

2
スクリプトの出力のコピーをファイルに送信する
Zshスクリプトがあり、出力をSTDOUTに出力したいが、その出力をディスク内のファイルにコピー(ダンプ)したいとします。 さらに、スクリプトは次のオプションで始まります set -o xtrace これにより、詳細になり、実行するコマンドが出力されます。この出力をディスク内のファイルにもキャプチャしたいと思います。 私が理解していることは ./my_script.sh &gt; log.txt それは単にに送信さSTDOUTれlog.txtますが、ターミナルで出力も確認できるようにするにはどうすればよいですか? 私はZsh teeのMULTIOSオプションについて読みましたが、それらの使用方法はわかりません。 私がする時: ./my_script | tee log.txt 端末で出力を確認できますが、ファイルはlog.txtすべてをキャプチャしているようには見えません(実際にはほとんど何もキャプチャしていません)。

3
関数がパイプラインで呼び出されたときに環境変数が設定されない
環境変数を設定する次の再帰関数があります。 function par_set { PAR=$1 VAL=$2 if [ "" != "$1" ] then export ${PAR}=${VAL} echo ${PAR}=${VAL} shift shift par_set $* fi } それを単独で呼び出すと、変数が設定され、標準出力にエコーされます。 $ par_set FN WORKS FN=WORKS $ echo "FN = "$FN FN = WORKS stdoutをファイルにリダイレクトすることもできます: $ par_set REDIR WORKS &gt; out cat out REDIR=WORKS $ echo "REDIR …

4
名前付きパイプから標準入力を取得する
私がしようとしていることは、ターミナルウィンドウでpythonを実行し、名前付きパイプからstdinにリダイレクトすることです。次に、別のターミナルで名前付きパイプに書き込み、そのコマンドをpythonで実行します。 ターミナル1: mkfifo p1 python &lt; p1 ターミナル2: echo -n "print \"Hello World\"" &gt; p1 何が起こるか-pythonが印刷Hello Worldして終了します。私がやりたいことは、次のコマンドを実行するためにpythonを実行し続けることです。シェルでこれを行うにはどうすればよいですか?

4
コマンドラインで末尾からテキストを実行する最も簡単な方法は何ですか?
新しい(ubuntu)ボックスに取り組んでいるときに、タイプするgitと警告が表示されることがあります。 The program 'git' is currently not installed. You can install it by typing: apt-get install git-core それが起こったら、私は次のようなことをすることで最後の行をつかむことができることを知っています: !! 2&gt;&amp;1 | tail -n 1 しかし、どうすればその結果(apt-get install git-core)を最も簡単に実行できますか? できると気づいた `!! 2&gt;&amp;1 | tail -n 1` しかし、実際に出力をパイプして実行する方法もありますか?これは機能していないようです: !! 2&gt;&amp;1 | tail -n 1 | sh また、その2&gt;&amp;1部分は少し扱いに​​くいので、それを実現する簡単な方法があるかどうか知りたいと思います。 編集する これを何らかの方法で変数に保存してから、変数を実行することもできます。 !! 2&gt;&amp;1 | tail …

3
gzip-リダイレクトまたはパイピング?
大容量(750GB)ディスクをddを使用して外部USBディスクにバックアップします。 リダイレクトまたはパイピングを使用する必要がありますか?どちらがより効率的ですか?または違いはありますか? また、最適なブロックサイズは何ですか?ここでUSBがボトルネックになる可能性があります。 dd if=/dev/sda bs=1M | gzip -c &gt; /mnt/sdb1/backups/disk.img.gz gzip -dc /mnt/sdb1/backups/disk.img.gz | dd of=/dev/sda bs=1M 対 dd if=/dev/sda bs=1M | gzip -c | dd of=/mnt/sdb1/backups/disk.img.gz dd if=/mnt/sdb1/backups/disk.img.gz | gzip -dc | dd of=/dev/sda bs=1M ありがとう。
10 linux  gzip  pipe  dd 

4
Bashスクリプトに続行する前にステータスメッセージを待機させる
私はbashスクリプトでSeleniumサーバーを起動しています。以下のログのタイムスタンプからわかるように、完全にオンラインになるまでに約32秒かかります。 Feb 28, 2012 10:19:02 PM org.openqa.grid.selenium.GridLauncher main INFO: Launching a standalone server 22:19:02.835 INFO - Java: Sun Microsystems Inc. 20.0-b11 22:19:02.836 INFO - OS: Linux 2.6.32-220.4.1.el6.x86_64 amd64 22:19:02.852 INFO - v2.19.0, with Core v2.19.0. Built from revision 15849 22:19:02.988 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub 22:19:02.990 INFO …
10 bash  logs  pipe  search  selenium 

2
STDOUTとSTDINを接続するとはどういう意味ですか?
私は本を​​読んでいます、それは言います: すべてのプロセスには、「標準入力」(STDIN)、「標準出力」(STDOUT)、および「標準エラー」(STDERR)の少なくとも3つの通信チャネルを使用できます。 ほとんどのコマンドは、STDINからの入力を受け入れ、出力をSTDOUTに書き込みます。エラーメッセージはSTDERRに書き込まれます。この規則により、ビルディングパイプラインのようにコマンドを連結して、複合パイプラインを作成できます。 シェルは、シンボルを解釈し&lt;、&gt;し、&gt;&gt;命令としてまたはファイルからのコマンドの入力または出力を再ルーティングします。 1つのコマンドのSTDOUTを別のコマンドのSTDINに接続するには| 、一般にパイプと呼ばれる記号を使用します。 ps -ef | grep httpd つまり、これは基本的に、標準入力はユーザーがファイルに書き込むことができるコマンドであり、標準出力はbashシェルがシェルに出力を書き込むコマンドであり、標準エラーは出力に似ていますが、ファイルシステムにエラーがある場合に呼び出されます。次に、STDOUTとSTDINを接続する部分に行き、私は迷っています。

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