Bash

在腳本中使用 sudo tee 也會將垃圾發送到終端,bash Debian 11

  • September 4, 2022

我有一個命令行:

# Download and add the Nginx GPG key to verify the authenticity of the packages.
wget -O - https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor | sudo  tee /usr/share/keyrings/nginx-archive-keyring.gpg

這會將正確的數據寫入密鑰環,但也會將其噴射到終端。我嘗試將 sudo tee 更改為 sudo cat >,但 ‘>’ 不是 sudo 的一部分,所以我的管道壞了。

我還嘗試了將標準輸出重定向到 /dev/null 的各種方法,但仍然會損壞管道。

有沒有一種干淨的方法可以避免 tee 將密鑰二進制程式碼發送到終端?

根據定義 ( man tee),該tee命令將它在stdin上讀取的內容複製到其命名文件,並將其複製到stdout

如果您不想要輸出,只需將其重定向到/dev/null

... | sudo tee outfile >/dev/null

引用自:https://unix.stackexchange.com/questions/716110