coprocesses

例 #1
coprocesses

例 #1

Bashで遊んでいるのにcoproc何か分かりません。 次の例から始めます。 例 #1 $ coproc MY_BASH { bash; } [1] 95244 $ echo 'ls -l; echo EOD' >&"${MY_BASH[1]}" $ is_done=false; while [[ "$is_done" != "true" ]]; do > read var <&"${MY_BASH[0]}" > if [[ $var == "EOD" ]]; then > is_done="t...

Admin

この場合、bashは親プロセスの共同プロセスをどのように知っていますか、shebang行がこれを変更するのはなぜですか?
coprocesses

この場合、bashは親プロセスの共同プロセスをどのように知っていますか、shebang行がこれを変更するのはなぜですか?

outer.sh: ls -l /proc/$$/exe coproc cat ./inner.sh kill $! inner.sh: ls -l /proc/$$/exe set | grep COPROC || echo No match found coproc cat kill $! を実行すると、./outer.sh以下が印刷されます。 lrwxrwxrwx 1 joe joe 0 Jun 16 22:47 /proc/147876/exe -> /bin/bash lrwxrwxrwx 1 joe joe 0 Jun 16 22:47...

Admin

コプロセスの戻り値と戻り状態
coprocesses

コプロセスの戻り値と戻り状態

この文の意味を理解していません。共同プロセス内部に強く打つマニュアルページ: コプロセスは非同期命令で生成されるため、コルーチンこのコマンドは常に成功を返します。 coprocess の戻り状態は「command」の終了状態です。 「成功」と「成功」の違いは何ですか?戻り値そして「成功/エラー」(0/非-0)終了ステータス?どう違うのか強く打つ?どのように彼らが違いを実現することができますか? ...

Admin

コマンド置換時の coproc と名前付きパイプの動作
coprocesses

コマンド置換時の coproc と名前付きパイプの動作

同じコマンド置換の後続の呼び出しと状態を渡すコマンド置換を介して呼び出されるzshシェルスクリプトから関数を生成する必要があります。 C関数の静的変数に似ています(おおよその)。 この目的のために、私は補助プロセッサを使用する方法と名前付きパイプを使用する方法の2つのアプローチを試しました。名前付きパイプ方法を操作できません。セカンダリプロセッサに関連する唯一の問題を解決すると思ったので、残念です。つまり、端末で新しいzshシェルを入力すると、親のzshセッションのcoprocを見ることができるようです。 以下の問題を説明するために、単純化されたスクリプトを...

Admin

coprocessを使用してBASHで名前参照変数を作成する
coprocesses

coprocessを使用してBASHで名前参照変数を作成する

現在、coprocを使用してバックグラウンドプロセスを開始し、名前参照変数を更新しようとしています。動作しないコード: function updateVariable(){ local -n myVar="${1}" #i=0; while : do sleep 1 myVar="ok" #((++i)) done } capture=""; coproc mycoproc { updateVariable capture; } 期待どおりに動作しません。echo $captureただ空です。 「よかったら」と...

Admin

coprocでcvlcを使用する
coprocesses

coprocでcvlcを使用する

使用したい.mp3仮想インターフェイス(たとえば)は、プレイリストに動的に追加したり、ファイルディスクリプタ全体を新しいデータ(新しいファイル)で上書きしたりするためのファイルディスクリプタvlcファイルを提供します。cvlc.mp3 coproc cvlc cvlc filename.mp3 >& OR >>&"${COPROC[1]}" これは実行されますが、プロンプトが返されるのを待ちます。これは、出力をファイル記述子として指定するため、予期されません。 ...

Admin

BashスクリプトのCoproc
coprocesses

BashスクリプトのCoproc

Raspberry PiのBluetoothを検索可能にするために単純なシェルスクリプトを作成しようとしたところ、いくつかの問題が発生しました。私のRaspberry PiはRaspbianを実行しています。 コマンドラインから実行すると正常に動作します。 coproc bluetoothctl echo -e 'discoverable on' >&${COPROC[1]} ただし、次のことを行うシェルスクリプトを作成するとき: #! /bin/bash coproc bluetoothctl echo -e 'discoverab...

Admin

複数の同時共同プロセスを持つことはできますか?
coprocesses

複数の同時共同プロセスを持つことはできますか?

これ意図以下のテストスクリプト1の目的は、「外部」共同プロセス(実行中)を開始しseq 3、ループからこの共同プロセスのデータを読み取りwhile、読み取った各行について、外部ループの現在の反復を識別する行を印刷し、「内部」 「共同プロセスを開始することです。 " "コプロセス(seq新しいパラメータを使用して実行中)は、ネストされたwhileループからこの内部コプロセスを読み取り、次にこの内部コプロセスをクリーンアップします。ネストされたwhileループは、内部コプロセスで読み取られる各行のいくつかの出力を印刷します。 #!/bin/bash # fil...

Admin

フロントエンド端末アクセスを介してバックグラウンドでコマンドを実行する
coprocesses

フロントエンド端末アクセスを介してバックグラウンドでコマンドを実行する

任意のコマンドを実行し、子プロセスと対話(具体的な詳細は省略)してから、終了するのを待つことができる関数を作成しようとしています。成功すると、入力はrun <command>まるで裸のように動作します<command>。 子プロセスと対話しなかった場合は、単に次のように書いたことでしょう。 run() { "$@" } ただし、実行中に対話する必要があるため、coprocおよびを使用してより複雑な設定を使用しますwait。 run() { exec {in}<&0 {out}>&amp...

Admin

bash coprocessはどのようにパイプライニングを達成しますか?
coprocesses

bash coprocessはどのようにパイプライニングを達成しますか?

ちなみに、この詩は男乱交(強調): 共同プロセス coprocess は coproc 予約語の前にあるシェルコマンドです。コプロセスは、&制御演算子を使用してコマンドが終了したかのようにサブシェルで非同期に実行されます。双方向チューブ付き 実行シェルとコプロセスの間に設定されます。 今私たちが知っているように、他の* nixシステムとは異なりLinuxパイプは一方向です。(また参照人的管理(7)、移植性セクション)。それでは、bash coprocesはLinuxで利用できない「双方向パイプ」をどのように実装しますか? ...

Admin

複数のバックグラウンド機能におけるbash読み取りコマンドのプロセス間通信
coprocesses

複数のバックグラウンド機能におけるbash読み取りコマンドのプロセス間通信

次のコードを基本入力から読み込み、関数から読み取ってから、他の関数の入力に送信するように努力していますが、動作させることはできず、入力する必要があります。解析できるようにコマンドを取得します。 coproc test { for i in $(seq 0 9) do sleep 1 echo $i done } input() { while read -u 3 gr do echo sent: $gr # this should send to output function done } ...

Admin

このgawkコルーチンはなぜ停止しますか?
coprocesses

このgawkコルーチンはなぜ停止しますか?

努力中Bashシェルから日付を変換する、私は努力したGNU awkの補助プロセス機能: gawk -F, -v cmd='date +"%Y-%m-%d %H:%M:%S" -f-' '{print $5 |& cmd; cmd |& getline d; $5 = d}1' foo コマンドが停止します。私はこれがdate入力全体が読み取られるのを待つからだと思うので、パイプの伝送の半分を閉じました。 gawk -F, -v cmd='date +"%Y-%m-%d %H:%M:%S" -f-' '{print $5 |& ...

Admin

zsh、zpty:プロセス終了後に出力を読み取るには?
coprocesses

zsh、zpty:プロセス終了後に出力を読み取るには?

以下を使用していくつかのコマンドを開始しますzpty。 zpty -d x ; zpty x 'echo hi' ; sleep 1 これで終了したので、どのように出力を読みますか? zpty -r x 2を返します。これはマンページに従って予想される動作です。 ...

Admin