Ato*_*lan 3 linux bash null background
如果我在bash中调用一个函数,并且该函数本身被设计为使用printf将消息输出到终端,我该如何抑制该功能.请允许我进一步解释.
通常我会有一个主脚本.该脚本调用一个函数.该函数使用printf执行其正常的操作并输出到终端.
我试图创建一个替代选项,你可以说,在后台运行该功能,不输出任何东西.
通常我会考虑做以下事情:
FUNCTION & > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
这将在后台运行正常功能并丢弃所有输出.
它似乎起初工作.通常出现的消息是空白的,主脚本完成运行.一旦回到提示,那么函数(循环用于许多不同的东西)就完成了,并开始输出到提示下面的终端.
思考?
如果您需要将该功能放在后台,则& 控制操作员需要在所有重定向规范之后在命令末尾向右移动:
$ 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
$
Run Code Online (Sandbox Code Playgroud)
正确的语法是
FUNCTION > /dev/null 2>&1 &
Run Code Online (Sandbox Code Playgroud)
由于&是一个命令终结符;,您需要在运行的命令中包含输出重定向FUNCTION,而不是以下命令.
| 归档时间: |
|
| 查看次数: |
2325 次 |
| 最近记录: |