下面的Bash命令是做什么的?
exec {logout}> >(tee -a "${LOGFILE}")或
exec {logout}>> "${LOGFILE}"发布于 2016-02-24 18:08:12
来自关于redirections的Bash参考
可以在文件描述符号之前的每个重定向可以改为由
{varname}形式的单词来代替。在这种情况下,对于除>&-和<&-之外的每个重定向操作符,shell将分配一个大于10的文件描述符,并将其分配给{varname}。
案例中的
exec {logout}> >(tee日志文件“${ -a }”)
Bash将打开一个新的文件描述符,将相应的整数赋给变量logout,并将此文件描述符链接到进程替换
tee日志文件“${ -a }”
输入此命令后,可以检查变量logout是否已分配给整数。然后,每次您将一个流重定向到文件描述符$logout时,它将被馈送到tee:
#!/ "$logfile"
$logout的输出将只被追加到$logfile (而不是传递到tee,所以你不会在标准输出上看到它)。在此之后,您实际上不需要关闭文件描述符,它将在脚本(或会话)结束时自动关闭;但如果您真的想关闭它:
exec {logout}>&-您可以检查使用打开的文件描述符
ls /dev/fdhttps://stackoverflow.com/questions/35597860
复制相似问题