我怎样才能让 kubectl 保持沉默?

How can I make kubectl silent?

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

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

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

Handling connection for 1234

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

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

echo "hi" > /dev/null 2>&1 &      # test stdout silence
>&2 echo "hi" > /dev/null 2>&1 &  # test stderr silence

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

我不知道我还能做些什么来抑制 kubectl port-forward 输出。我错过了什么?

以下是在我的案例中有效的方法(在命令执行输出完全无声之后):

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

表示将 stderr 输出发送到 stdout 输出的相同位置,即 /dev/null

已测试:

Ubuntu 18.04

内核 5.4.0-70-generic

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

根据我的经验,可以通过将 2>&1> /dev/null 交换来使 kubectl 静音。不然不行。

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