在bash中从内部函数设置重定向

用户137369

我想做这种形式的事情:

one() {
  redirect_stderr_to '/tmp/file_one'

  # function commands
}

two() {
  redirect_stderr_to '/tmp/file_two'

  # function commands
}

one
two

这将连续运行,onetwo重定向stderr到相应的文件。工作等效项为:

one() {
  # function commands
}

two() {
  # function commands
}

one 2> '/tmp/file_one'
two 2> '/tmp/file_two'

但这有点丑陋。我宁愿将所有重定向指令都包含在函数本身中。这样会更容易管理。我觉得这可能无法实现,但请确保。

mklement0

最简单,最可靠的方法是使用函数级重定向:请注意,在下面的关闭之后,如何将重定向命令应用于整个函数}并且将其范围限定于每个函数(无需重置):

# Define functions with redirected stderr streams.
one() {
  # Write something to stderr:
  echo one >&2
} 2> '/tmp/file_one'

two() {
  # Write something to stderr:
  echo two >&2
} 2> '/tmp/file_two'

one
two

# Since the function-level redirections are localized to each function,
# this will again print to the terminal.
echo "done" >&2

文档链接(感谢@gniourf_gniourf):

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

bash重定向块代码输出到函数中

来自分类Dev

laravel return重定向内部函数

来自分类Dev

exec在bash中重定向

来自分类Dev

在Phoenix框架中的插件内部重定向

来自分类Dev

Symfony / Sonata中的内部页面重定向

来自分类Dev

在htaccess中设置条件重定向

来自分类Dev

Bash / Docker exec:从容器内部重定向文件

来自分类Dev

将函数输出重定向到printf语句在bash中似乎不起作用

来自分类Dev

将函数输出重定向到printf语句在bash中似乎不起作用

来自分类Dev

Yii内部重定向

来自分类Dev

在bash中获取重定向位置

来自分类Dev

如何简化bash中的重复重定向

来自分类Dev

bash重定向中的意外行为

来自分类Dev

bash中的输入输出重定向

来自分类Dev

如何在bash中重定向警告?

来自分类Dev

了解Bash中的I / O重定向

来自分类Dev

Bash中'2>>((command)')重定向的含义

来自分类Dev

bash重定向中的“-”如何工作?

来自分类Dev

使用ajax函数在codeigniter中重定向

来自分类Dev

如何从Flask中的辅助函数重定向?

来自分类Dev

在JavaScript函数中重定向,coeigniter

来自分类Dev

laravel辅助函数中的重定向

来自分类Dev

CanActivate vs构造函数中的重定向

来自分类Dev

函数 codeigniter 中的重定向问题

来自分类Dev

如何设置重定向到JS函数提供的链接

来自分类Dev

Stderr重定向也意外地重定向了一些BASH内置函数

来自分类Dev

扩展bash函数以添加输入重定向和/或管道

来自分类Dev

bash:防止重定向函数的错误与输出混合

来自分类Dev

内部重写的查询字符串显示在重定向中