1
OS X,bash:较少用于打开文件描述符,而cat不
在我正在使用的bash脚本中(必须在Ubuntu和OS X上运行),我需要将数百个命令的输出重定向到文件。 与其附加&>...到所有这些,不如做 exec 9>&1 exec 5<>/tmp/some-file.txt exec 1>&5 到目前为止,一切顺利,但是在所有这些命令的中间,我需要读取到目前为止已编写的所有内容,同时保持文件描述符处于打开状态。 现在,在Ubuntu上,我可以做 cat /dev/fd/5 要么 tee </dev/fd/5 但是在OS X上,什么也没打印(命令立即退出)。 但是,使用lessI可以看到两者的文件内容。 我可以通过使用以下命令来达到上述效果(在两个操作系统上均有效) less /dev/fd/5 | tee 但这似乎是一个hack。 那么,为什么less显然可以看到catOS X上无法显示的内容?(或者所有BSD后代都受到影响吗?) 还是我做错了什么?