在具有输入和输出重定向的 while 循环中读取用户的输入

在具有输入和输出重定向的 while 循环中读取用户的输入

这是我的代码:

while IFS=',' read a b c; do
     read input
     echo $input
done 3<&0 < input.csv > output.txt

我通过管道重定向来处理输入重定向。但是,当我运行上面的代码时,控制不会停止输入。

为什么?

答案1

这是因为您的输入流正在同时提供两者read。你几乎是对的,所以也许这是一个错字(你只是忘记将正确的 FD 赋予你的第二个read):

while IFS=',' read a b c; do
  read input <&3
  echo $input
done 3<&0 < input.csv >> output.txt

相关内容