禁用 systemctl 和 apt-get 的输出

禁用 systemctl 和 apt-get 的输出

我目前正在编写一个脚本,用于自动安装和配置 Samba 服务器。我想知道为什么此命令sudo apt-get -y install samba > /dev/null && sudo systemctl enable smbd.service > /dev/null仍会给出此输出。

Extracting templates from packages: 100%
Synchronizing state of smbd.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable smbd

我怎样才能阻止命令给出任何输出?

谢谢

Ubuntu Server 20.04.3 LTS

答案1

>只会重定向stdoutstderr流也应重定向。命令如下:

sudo apt-get -qq install samba 1> /dev/null 2> /dev/null && sudo systemctl enable smbd.service 1> /dev/null 2> /dev/null

  • apt-get..-qq将禁止更多安装对话框
  • 1> /dev/null丢弃 STDOUT
  • 2> /dev/null丢弃 STDERR

答案2

如果您的脚本使用bash,那么您应该使用&>运算符来重定向任何输出,即stderrstdout

sudo apt-get -y install samba &>/dev/null \
&& sudo systemctl enable smbd.service &> /dev/null 

相关内容