FreeBSD、MySQLは、Perl、bash:間欠ブロックに名前付きパイプ?
-
11-09-2019 - |
質問
このか、なんなのか、犯人のプラットフォームに対応
になっている一部のスクリプティング、FreeBSD(6.2)?を大量に使用されている以下の***bash***ism:
do_something <(mysql --skip-column-names -B -e 'select ... from ... where ...;')
...が"do_somethingはややcrufty変換ユーティリティ(含んからの読み込み、パイプラインを利用した場合、通常のファイルです。私 bash スクリプトを使う exec 4< <(...)
これらのクエリー(以下のループ形式の while read x y z <&4; do ...
なされているわけではなさそうだ。
しかし、Perl(5.8.x)のように定期的にブロックのようで永遠に).また変化するの chomp(my $data = <MYDATA>);
と日常的に使 sysread と書いたテストケーブ。このようにブロックで以下の慣用的Perlコードが、依然としていることもあります。(Pythonコードを使用 f.read()
または os.read(f.fileno()...)
そうな振る舞いに対して同じこしました。
また再生の課題を ... <(cat ...)
がん 猫ングの普通のファイル)とすると考えており、それを再現しているのである。
今振りむもの ktrace/kdump タ---がんのかな strace もSolaris トラス ...いまだその行うかがいます。
はないかと思いままで主義Perl、がんの再るとともに、同誌掲載号の注目Pythonを使用した...と思いますかどのように bash ができないように、間違ったこちらでは作っ名前付きパイプに /var/tmp/sh-np-xxx 配線の工程までです。
ものに mysql シェル/ユーティリティとなっていを引き起こす可能性のある。とは思わないんかんなど 猫 または dd).まだ試このシナリオの下でのLinux...ものに使用しました <(...)
(プロセス置換)において長年には、Linuxおよびんリコールを見ます。
でFreeBSD。
くらいで問題を回利用の一時ファイル...していくなかで行なっていることを避けるのにレースや清掃messinessる一時ファイルを伴うもの).
ご意見募集
解決
の大きな違いは営業上の出力をmysqlに直接ファイルはタイミングでした。が、perlの処理が停滞し、大きな問題は"なぜでない前進を"?利用できる"l"オプションをpsのを待つのチャネルは、perlプロセスを見ることができればブに読み込みた場合や、何か行っています。の場合はクなどが配管の入力に期待したいMWCHAN入のためのperlする"piperd".
同じ情報を最大限に取り入れた興味深いのはmysqlます。
うなPythonコード試験音も聞こえてきます。
別の言い方を書くことを避けながら、bashismはこ;ることができるためbash:
mysql --skip-column-names -B -e 'select ... from ... where ...;' | do_something /dev/stdin
その他の興味深い質問:
は、--unbufferedオプションをmysqlの変更ものはありますか?
は配管のmysql出力ddを通じて変更ものはありますか?(例."perlscript <(mysql...|dd)
概要:が必要です。