cat 只打印一个文件描述符
cat only prints one file descriptor
我正在尝试了解文件描述符的工作原理。
下面的script2.sh怎么没有输出b.txt的内容呢?
$ cat a.txt
Hello
$ cat b.txt
World
$ cat script1.sh
cat a.txt b.txt
$ ./script1.sh
Hello
World
$ cat script2.sh
exec 19<a.txt
exec 20<b.txt
cat <&19 <&20
$ ./script2.sh
World
<&19
表示“用 FD 19 替换标准输入”,<&20
表示“用 FD 20 替换标准输入”。这些互相破坏。如果您想读取两个 FD,则改为 cat /dev/fd/19 /dev/fd/20
。
我正在尝试了解文件描述符的工作原理。
下面的script2.sh怎么没有输出b.txt的内容呢?
$ cat a.txt
Hello
$ cat b.txt
World
$ cat script1.sh
cat a.txt b.txt
$ ./script1.sh
Hello
World
$ cat script2.sh
exec 19<a.txt
exec 20<b.txt
cat <&19 <&20
$ ./script2.sh
World
<&19
表示“用 FD 19 替换标准输入”,<&20
表示“用 FD 20 替换标准输入”。这些互相破坏。如果您想读取两个 FD,则改为 cat /dev/fd/19 /dev/fd/20
。