gpt4 book ai didi

linux - 防止在子 shell 中调用 bash 函数的输出

转载 作者:IT王子 更新时间:2023-10-29 00:55:19 24 4
gpt4 key购买 nike

如果我在 bash 中调用一个函数,并且该函数本身被设计为使用 printf 将消息输出到终端,我该如何抑制该功能。请允许我进一步解释。

通常我会有一个主脚本。该脚本调用一个函数。该函数执行其正常工作并使用 printf 输出到终端。

我正在尝试创建一个替代选项,您可以说,在后台运行该函数并且不输出任何内容。

通常我会想做以下事情:

FUNCTION & > /dev/null 2>&1

这将在后台运行正常功能并丢弃所有输出。

一开始似乎可行。通常出现消息的地方是空白,主脚本完成运行。不过,一旦回到提示符,函数(循环处理许多不同的事情)就会完成并开始输出到提示符下的终端。

想法?

最佳答案

如果你需要把函数放在后台,& control operator在所有重定向规范之后,需要在命令末尾右转:

$ function myfunc() {
> printf "%s\n" "normal message"
> printf "%s\n" "error message" 1>&2
> }
$ myfunc
normal message
error message
$ myfunc > /dev/null 2>&1 &
[2] 12081
$
[2]+ Done myfunc > /dev/null 2>&1
$

关于linux - 防止在子 shell 中调用 bash 函数的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23372420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com