我正在制作一个脚本来更新系统(Ubuntu 22.04),用一个命令更新 apt、flatpak 和 snap 中的所有软件包(如sudo ./update.sh
),并且,如果出现问题,我想将输出保存在一个文件中。我有两种方法可以做到这一点。
一种是用“tee”重定向每个订单的标准输出,例如:
echo "### apt update:\n" | tee update.out
apt update | tee -a update.out
# etc, etc all with "| tee -a update.out"
这是您在编程中希望避免的重复。
我可以做到的另一种方法是使用“tee”调用脚本本身,如下所示:
sudo ./update.sh | tee update.out
但如果我希望默认情况下有这种行为,明智的做法是将其放入脚本中,对吧?
我怎样才能做到这一点,所以当我这样做时sudo ./update.sh
,它会将整个输出发送到屏幕和输出文件?