I’m trying to Create OS detect portable function in bash script,
So I just want to know, the file "/etc/issue" is common for all Linux Flavors ?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Yes this is a standard file across distributions. It’s standard on most distros, Fedora/CentOS/RHEL/Debian/Ubuntu etc.
You can read more about it with a man issue or its associated file /etc/issue.net. You can see the issue.net man page for more details and how to include macros into both files there as well.
You can also read more about it on the Linux From Scratch project, Customizing your Logon with /etc/issue.
Method 2
In addition to slm’s answer, it’s worth remembering that anyone (with root access) can edit the content of /etc/issue. Some organisations may do so to present pre-login warnings or disclaimers, and others may remove all identification of the distribution for security reasons (it doesn’t matter how effective either of these measures are).
Therefore, while /etc/issue may exist almost all the time, the content is not necessarily suitable for detecting the OS (as you put it, or more likely, the Linux distribution).
Method 3
@EightBitTony’s answer is correct. Also it does not exist by default on fedora 23.
Do not rely on it for identifying random systems. I’d use /etc/system-release or /etc/os-release but not sure how much universal that is.
Reading a bit /etc/os-release comes with systemd so I guess won’t work with archaic distros (or any that hate systemd). Could not find authoritative info about /etc/system-release. I guess one has to check many files if compatibility is important. Or use /etc/os-release if edge cases are not important.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0