2016-03-22 2 views
0

シェルスクリプトでは新しいです。私はこの下のコードを持っており、私はそれらの違いを知らない。優先順位演算子()を検索しましたが、以下の行でどのような違いがあるのか​​わかりませんでした。()の単純なコード行への影響は?

stdbuf -o 0 -e 0 ../../<program> <input file> &> OutputFile.txt & 

(stdbuf -o 0 -e 0 ../..<program> <input file> &) &> OutputFile.txt 

お返事ありがとうございます。

+1

「サブシェル」を探します。 – pfnuesel

+1

サブシェルで囲まれたコマンドを実行します。 – JNevill

答えて

1

最初の例ではstdbufの下に<program>を実行し、標準出力では標準エラーがOutputFile.txt&)にリダイレクトされています。

第二ラン全てその標準誤差とOutputFile.txtにリダイレクト標準出力を有するサブシェルにおけるバックグラウンド(&)でstdbuf<program>

しかし、この違いの実際の効果は、私が正確に言うことはできません。

+0

答えをありがとう! –

0

すでにコメントで述べたように、(...)の文は、subshellで実行されます。

は以下の断片想像以上

(
echo 'line1' 
echo 'line2' 
echo 'line3' 
) >/tmp/file 

の両方が同じ結果を生成しますが、2番目のように書くことができるようサブシェルを使用して

echo 'line1' > /tmp/file 
echo 'line2' >> /tmp/file 
echo 'line3' >> /tmp/file 

を、あなたは、全体のサブシェルをリダイレクトすることができますより短く、よりクリーンで簡単に変更可能です。

関連する問題