如何让 kubectl 保持沉默?

Mic*_*haw 12 bash kubectl

我试图在后台启动端口转发,同时抑制所有输出。这是我尝试过的:

kubectl port-forward pod-name 1234:1234 > /dev/null 2>&1 &
Run Code Online (Sandbox Code Playgroud)

然而,当我发起连接时,我仍然看到这样的消息:

Handling connection for 1234
Run Code Online (Sandbox Code Playgroud)

据我了解,标准输出和错误都应该定向到/dev/null。

这个脚本的沉默似乎证实了我的信念:

Handling connection for 1234
Run Code Online (Sandbox Code Playgroud)

(注意:我必须在脚本而不是 shell 中运行它们,以避免 shell 关于子 shell 的默认输出。)

我不知道还能做什么来抑制输出kubectl port-forward。我缺少什么?

gok*_*ess 7

这是在我的情况下有效的(命令执行输出完全无声之后):

kubectl port-forward pod-name 1234:1234 2>&1 >/dev/null &

这表示将输出发送到输出所在的stderr同一位置stdout/dev/null

测试用于:

乌班图18.04

内核 5.4.0-70-通用

GNU bash,版本 4.4.20(1)-release (x86_64-pc-linux-gnu)


小智 7

根据我的经验,可以通过2>&1与交换来使 kubectl 保持沉默> /dev/null。否则就行不通。

kubectl port-forward pod-name 1234:1234 > /dev/null 2>&1 &