文件描述符 10 是什么?
现实世界中的例子(标准输出被忽略,标准错误重定向到标准输出,文件描述符 10 的数据重定向到标准输出),我丢失了以下文档/上下文:
./cluexec21nodes 'mkdir /home/mortense/sambapub;cd /home/mortense/sambapub;./runcola.sh >/dev/null 2>&1 10>&1 &'
0 Standard Input (stdin)
1 Standard Output (stdout)
2 Standard Error (stderr)
但是文件描述符 10 是什么?
这是在 Linux 系统(可能是 Red Hat)上使用的。
答案1
除了标准文件描述符之外,还有 3-1024 个。这些可以在脚本中使用
exec 10<> afilename
从此时起,任何写入文件描述符 10 的内容都将写入afilename
当你有
./script.sh 10>&1
您正在将原本发送到文件描述符 10 的所有内容重定向到 stdout。
您将需要查看runcola.sh
脚本来了解其为何这样做。
答案2
文件描述符不是固定的;程序可以以任何想要的方式使用它们。(甚至 fd 的 0-2 也可以关闭、打开和重用。)
在这种情况下,fd 10 似乎是任意选择的;它可能./runcola.sh
期望能够向其写入一些附加信息。您必须阅读脚本本身才能确定。