![Bash 脚本用于安装软件包并报告到日志文件](https://linux22.com/image/636932/Bash%20%E8%84%9A%E6%9C%AC%E7%94%A8%E4%BA%8E%E5%AE%89%E8%A3%85%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%B9%B6%E6%8A%A5%E5%91%8A%E5%88%B0%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6.png)
我希望能够将运行 bash 脚本的结果记录到文件中。脚本本身非常简单,用于在全新安装的机器上安装基本软件包,其方案如下
sudo apt-get install -y nano
我试图实现的是让 bash 脚本报告安装是否顺利,或者在安装失败的情况下指出哪里出了问题。所以我希望它创建类似“log”的文件,该文件会非常简要地报告状态,例如
Package "nano" successfully installed!
或者
Package "nano" failed to install. // Here comes the line of apt-get install that caused fail
提前致谢!
答案1
首先,您不能在 bash 脚本中使用 sudo,它是非交互式的,因此如果您需要使用密码,您将无法提升权限。
下面是安装多个包的基本示例,要安装更多包,您需要将包添加到“for package in”行。输出设置为附加到现有文件。
#!/bin/bash
apt-get update
for package in nano httpd vim mysql-server
do
apt-get install -qq --print-uris $package >> script.log 2>>script_error.log
done
您应该以自己喜欢的方式保存此文件,然后需要设置权限以允许执行脚本。如果您将文件命名为 script.sh,则需要运行:
chmod +x script.sh
然后运行脚本,您需要执行以下操作:
sudo ./script.sh
这是一个非常基本的示例,它没有尽可能好地记录日志,并且有许多更复杂和更好的方法可以实现它,但是如果您愿意在安装后查看日志,它就可以完成工作。第一个日志包含正常安装的最低限度的日志记录(即使您不看它,也可以保留它以备检查),第二个日志文件仅包含来自 apt-get 的错误。