首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“任何与shell函数相关的重定向都是在执行该函数时执行的。”

“任何与shell函数相关的重定向都是在执行该函数时执行的。”
EN

Unix & Linux用户
提问于 2017-07-29 23:02:15
回答 1查看 59关注 0票数 -3

从bash手册

任何与shell函数相关的重定向(参见第3.6节重定向,第31页)都是在执行该函数时执行的。

在哪里指定了“与shell函数关联的重定向”?它是为函数定义中的命令指定的,还是为函数调用指定的?

为什么引号强调在执行函数时执行这样的重定向?

谢谢。

EN

回答 1

Unix & Linux用户

发布于 2017-07-30 15:23:09

简而言之,正如PSkocik在一条评论中所建议的那样,问题中的语句意味着,在使用bar() { ... } > foo时,在函数bar()开始执行之前,您不必担心foo会被覆盖。也就是说,仅仅运行定义bar的脚本并不足以覆盖foo,您实际上必须调用bar :)

实际上,这也意味着您可以使用变量重定向,> "$foo"而不是> foo,因为在函数调用之前变量不会被展开/评估。

有关此和其他函数重定向细节的许多讨论可以在这里找到:http://www.linuxjournal.com/content/more-bash-redirections

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/382654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档