我目前正在编写一个脚本,用于自动安装和配置 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
>
只会重定向stdout
。stderr
流也应重定向。命令如下:
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
丢弃 STDOUT2> /dev/null
丢弃 STDERR
答案2
如果您的脚本使用bash
,那么您应该使用&>
运算符来重定向任何输出,即stderr
和stdout
:
sudo apt-get -y install samba &>/dev/null \
&& sudo systemctl enable smbd.service &> /dev/null