0

昨日、私もこの質問をしました。すべての答えをありがとう。しかし、私はまだそれを理解していません。

やった

$ exec 6<&0 0</tmp/lines.txt

私は思った:私の標準入力は今リダイレクトされています。しかし、ファイル内の行も実行されます! これだけを行うときのデフォルトのアクションはありますか?これは私の質問です。

まあ言ってみれば

$ cat /tmp/lines.txt 
read i j
read i j
echo "i:$i,j:$j">/tmp/res.txt

私は実行を行い、その後実行します

$ cat /tmp/res.txt 
i:read,j:i j

しかし、私がするとき

$ exec 6<&0 0</tmp/lines.txt;exec 0<&6 6<&-

何も読み取られず、実行されません。セリフは読めるけどアクションは自分でやらなきゃいけないので、

$ exec 6<&0 0</tmp/lines.txt ;while read i j;do echo "i:$i,j:$j";done

私は私の端末で見る、

i:read,j:i j
i:read,j:i j
i:echo,j:"i:$i,j:$j">/tmp/res.txt

長くなりませんが、よろしくお願いします。

エリック J.

4

1 に答える 1