$exec 3<input.txt
$sleep 60 >&3 &
[1] 32524
$ cd/proc/32534/fd
$ ls -l
lrwx------. 1 zhangchen zhangchen 64 Sep 24 18:29 0 -> /dev/pts/0
lr-x------. 1 zhangchen zhangchen 64 Sep 24 18:29 1 -> /home/zhangchen/input.txt
lrwx------. 1 zhangchen zhangchen 64 Sep 24 18:29 2 -> /dev/pts/0
lr-x------. 1 zhangchen zhangchen 64 Sep 24 18:29 3 -> /home/zhangchen/input.txt
$grep test_word <&3
test_word
$grep test_word <&3
[nothing output]
grep 不是用描述器 1 搜索文件吗,为什么 grep 改了文件描述器 3?
你的问题不明确:你提供了一些命令及其输出,然后提出一个问题,期望读者理解你的意图;我建议如果您花更多时间仔细写下您的问题,您会得到更有用的答案。也就是说,如果我正确理解你的问题,grep 正在使用文件描述符 3,因为你使用
<&3
显式重定向了标准输入。