1

この質問は、 Chapter 2 Exercises 2のChris JohnsonによるPro Bash Programmingからのものです。

$RANDOM を使用してスクリプトを作成し、次の出力をファイルと変数の両方に書き込みます。次の数字は、形式を示すためだけのものです。スクリプトは異なる数値を生成する必要があります。

 1988.2365
13798.14178
10081.134
 3816.15098

これが私の解決策です:

printf -v var "%5d.%-5d\n" $RANDOM $RANDOM $RANDOM $RANDOM $RANDOM $RANDOM $RANDOM $RANDOM > FILE

出力は直接varに入るようで、FILEは空です。

私の質問は、標準出力を変数とファイルに同時にリダイレクトする方法はありますか?

4

1 に答える 1

4

あなたは書くことができます:

var="$(printf '%5d.%-5d\n' $RANDOM ... | tee FILE)"

コマンドを使用しtee標準出力を「分割」し、コマンド置換FILEを使用して変数にキャプチャできる新しい標準出力の両方に入るようにします。

于 2013-01-20T03:23:05.050 に答える