複数のプロセスを並行して実行する方法を学んでいます
./script1.sh param1 1>/dev/null 2>&1 &
pid1=$!
./script1.sh param2 1>/dev/null 2>&1 &
pid2=$!
ここで何が起こっているのかわかりません:
1>/dev/null 2>&1
pid1=$!
複数のプロセスを並行して実行する方法を学んでいます
./script1.sh param1 1>/dev/null 2>&1 &
pid1=$!
./script1.sh param2 1>/dev/null 2>&1 &
pid2=$!
ここで何が起こっているのかわかりません:
1>/dev/null 2>&1
pid1=$!
標準出力 (ファイルハンドル 1) を /dev/null にリダイレクトします
1>/dev/null
標準エラー (ファイルハンドル 2) を標準出力にリダイレクトします。
2>&1
最新のバックグラウンド コマンドの PID を変数 pid1 に割り当てます (詳細は bash のマニュアル ページ、特殊パラメーターを参照) 。
pid1=$!
その結果、標準出力と標準エラーの両方が /dev/null にリダイレクトされます。
その他の例は、http: //tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.htmlにあります。
通常、プログラムには、標準入力、標準出力、および標準エラーの 3 つのファイルが開かれます。標準ストリームまたはリダイレクトの詳細については、wikipedia を参照してください。
スクリプトの次の部分:
./script1.sh param1 1>/dev/null 2>&1 &
pid1=$!
平易な英語に翻訳:
現在のディレクトリから、パラメーターを指定し./
てプログラムを実行し、標準出力を/dev/nullにリダイレクトし、標準エラーを標準出力にリダイレクトして、プログラムをバックグラウンドで実行させます。バックグラウンドで開始されたばかりのプログラムの PID を pid1 に割り当てます。script1.sh
param1
1>/dev/null
2>&1
&
pid1=$!