私は多くのスクリプトを移植してきました。オペレーティングシステム7.1。私はこのUnixシステムの以前の経験はありません。
スクリプトはおよびで実行され、/bin/sh
それに応じて異なります/dev/stdout
。これらのファイルは標準化されていないことが知られています。/dev/stdin
/dev/stderr
オペレーティングシステム7.1実装されていないようです。
/proc
VFSが存在することを発見した/dev/std{in|out|err}
後/proc/$$/fd/{0|1|2}
。pts
000(c---------
)。
/bin/bash
/dev
を含む多くのデバイスをエミュレートすることが知られています/dev/std*
。変換と使用の限られた実験は成功/bin/bash
しました。しかし、すべてのスクリプトを切り替えてテストするには時間がかかります。/bin/sh
/dev/std*
/bin/bash
質問:
標準IOファイルを処理する方法オペレーティングシステム7.1下に/bin/sh
?例えば採用中です。/dev/tty
どのように?
//移植するスクリプトの1つの呼び出しの例:
# param_protocol parameter apparently needs a file representation of the stdout
black_box_binary param1=$value1 param2=$value2 param_protocol=/dev/stdout
答え1
<&0
読み書きで>&1
これらのファイルを置き換えることができます>&2
。それらはそれぞれstdin、stdout、stderrです。
答え2
/dev/std{in,out,err}
これらのファイルが単にシンボリックリンクである可能性はありますか/proc/$$/fd/{0,1,2}
?望むより」標準エラーおよびその他の出力リダイレクト」に関する背景情報があります。しかし、以前の投稿によると、">/dev/stdout"の移植性シェルに依存しているようです。