从bash手册
任何与shell函数相关的重定向(参见第3.6节重定向,第31页)都是在执行该函数时执行的。
在哪里指定了“与shell函数关联的重定向”?它是为函数定义中的命令指定的,还是为函数调用指定的?
为什么引号强调在执行函数时执行这样的重定向?
谢谢。
发布于 2017-07-30 15:23:09
简而言之,正如PSkocik在一条评论中所建议的那样,问题中的语句意味着,在使用bar() { ... } > foo时,在函数bar()开始执行之前,您不必担心foo会被覆盖。也就是说,仅仅运行定义bar的脚本并不足以覆盖foo,您实际上必须调用bar :)
实际上,这也意味着您可以使用变量重定向,> "$foo"而不是> foo,因为在函数调用之前变量不会被展开/评估。
有关此和其他函数重定向细节的许多讨论可以在这里找到:http://www.linuxjournal.com/content/more-bash-redirections
https://unix.stackexchange.com/questions/382654
复制相似问题