我想让bash脚本在打开时将附加信息输出到大于或等于3的文件描述符(FD)。为了测试FD是否打开,我设计了以下技巧:
if (printf '' 1>&3) 2>&-; then
# File descriptor 3 is open
else
# File descriptor 3 is not open
fi
这足以满足我的需求,但是我很好奇是否有一种惯用的方法来测试FD是否有效。我特别是约是否存在所述的映射感兴趣fcntl(1)
系统调用到外壳命令,这将允许FD标志的检索(O_WRONLY
和 O_RDWR
测试的FD是否可写,和O_RDONLY
和 O_RDWR
测试的FD是否可读)。
<>
?Shell不会从其stderr中读取数据,为什么要以读写方式打开它?你对内在发生了什么意思??