【发布时间】:2020-07-17 09:32:25
【问题描述】:
我使用以下代码将某些内容输出到标准输出,并将其通过管道传输到程序:
function example() {
local fd1
{
exec {fd1}>&1
{ echo hi >&$fd1 } | true
} always { exec {fd1}>&- }
}
我想知道我是否可以安全地放弃always { exec {fd1}>&- }。 fd1 在函数完成后超出范围。
【问题讨论】:
-
这是一个主观问题,不太可能得到明确的答案。简短的回答是,您不必这样做,但这样做是一种“好”的做法
-
@Inian 在什么情况下它会产生任何不良后果?
-
@Inian 这并不比“即使最后一个指向它的指针超出范围,我还需要在 malloc 后释放内存吗?”更主观吗?
标签: zsh file-descriptor io-redirection