想要在全新安装发行版之后运行安装软件和回购的bash脚本。我有一个脚本可以用于基于debian的发行版。想添加到将从lsb_release中获取发行版并启动正确的安装命令的脚本中。 lsb_release是否是正确的选择?我假设我可以grep DISTRIB_ID并使用它来启动脚本的下一部分。我可能会从错误的方向来到这里。有什么建议?干杯。将lsb_release的发行版信息添加到脚本中
0
A
回答
0
虽然您可以使用lsb_release -d
来提取当前安装的分发版的描述,但lsb_release
可能不会安装在某些基于非debian的发行版中。
相反,您可以在/etc
中查找以-release
结尾的文件,其中包含您的操作系统信息。例如,从我的Ubuntu 15.10,下面是我:
alexander~$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=15.10
DISTRIB_CODENAME=wily
DISTRIB_DESCRIPTION="Ubuntu 15.10"
NAME="Ubuntu"
VERSION="15.10 (Wily Werewolf)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 15.10"
VERSION_ID="15.10"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
通知ID
,其中包含您的电流分布,并ID_LIKE
,其中包含您的分发是基于发行版(在我的情况下,Ubuntu的,这是基于debian)。
cat /etc/*-release | grep "^ID=" | grep -E -o "[a-z]\w+" # get ID value
cat /etc/*-release | grep "^ID_LIKE=" | grep -E -o "[a-z]\w+" # get ID_LIKE value
# If the -o option is not available for grep in your system, use awk instead
在你的脚本,可以初始化变量上面的说明,如:
current_distro=`cat /etc/*-release | grep "^ID=" | grep -E -o "[a-z]\w+"`
close_distro=`cat /etc/*-release | grep "^ID_LIKE=" | grep -E -o "[a-z]\w+"`
然后你就可以判断这个,你可以通过grepping如下提取ID和ID_LIKE的值通过在您的脚本中检查"$current_distro"
或"$close_distro"
来执行相应的安装命令。
相关问题
- 1. 将版本信息添加到Qt中的.rc文件中
- 2. 将版本信息添加到OSX命令行应用程序
- 3. 如何使用TFS脚本的版本信息添加标签
- 4. 将版权信息添加到网站上的复制文本?
- 5. 如何将版本信息添加到Delphi的另一个版本?
- 6. 将自定义版本信息添加到C#应用程序
- 7. 将版本信息添加到Android应用程序
- 8. 如何将版本信息添加到Cmdlet pssnapin
- 9. 将版本信息添加到Windows Phone 8.1 C++/CLI类库
- 10. 如何通过cmake将版本信息添加到.exe或.dll
- 11. 如何将版本信息添加到Web服务?
- 12. 使用IntelliJ将版本信息添加到jar文件名称
- 13. 将信息添加到文本文件
- 14. 将链接添加到信息文本
- 15. 如何将版本信息添加到Code :: Blocks中的C++应用程序
- 16. Python将信息添加到列表中
- 17. 将信息添加到数据库中
- 18. 将版本信息嵌入到Lua脚本中的标准方法?
- 19. 将版本添加到WSDL
- 20. 将图像添加到针脚的信息窗口(Google地图)
- 21. 如何将信息同时添加到Excel中的一行
- 22. 将脚本中的信息保存到文本文件中 - Python
- 23. 将脚本添加到LaunchScreen.storyboard?
- 24. 将标题(版权)信息添加到现有源文件
- 25. 如何将版权信息添加到Nib文件?
- 26. 如何将自定义统计信息添加到TFS 2010版本?
- 27. 将信息从Java发送到Java脚本?
- 28. 如何使用AJAX将信息发送到PHP脚本?
- 29. 将信息从bash脚本发送到程序
- 30. 将信息添加到CException和CEmailLogRoute
非常感谢。这有帮助。 ID和ID_LIKE是更好的选择。 –
不客气。并且[os-release-operating system identification](https://www.freedesktop.org/software/systemd/man/os-release.html)对它们进行了描述,ID/ID_LIKE更适合通过脚本进行处理或使用在生成的文件名中。 – assefamaru