Hi.
We use a variety of platforms, so we often need to identify the one on which we are working. Here is a sampling showing the use of:
- GNU script
config.guess
,
- file /etc/issue,
- standard *nix command
uname
,
- our local code
version
Our code version
is really for displaying versions of commands and scripts, but we found it convenient to identify the OS as an option as well as displaying a code version. We make use of uname
for a number of elements in the display, but AIX and macOS, for example, need special processing. The code is probably not completely general, but the design it has suited our variety of OSs quite well. However, while the call to it is a single-line, the devil in the details requires a lot of extra code, and is, most emphatically, not a single-line.
config.guess:
x86_64-pc-linux-gnu
/etc/issue:
Debian 10.0 (buster) \n \l
uname:
Linux vm-buster 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5+deb10u2 (2019-08-08) x86_64 GNU/Linux
(local) version:
OS, ker|rel, machine: Linux, 4.19.0-5-amd64, x86_64
Distribution : Debian 10.0 (buster)
config.guess:
x86_64-unknown-linux-gnu
/etc/issue:
CentOS 6.4 (Final)
Kernel \r on an \m
uname:
Linux vm-centos 2.6.32-358.23.2.el6.centos.plus.x86_64 #1 SMP Thu Oct 17 00:31:29 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
(local) version:
OS, ker|rel, machine: Linux, 2.6.32-358.23.2.el6.centos.plus.x86_64, x86_64
Distribution : CentOS 6.4 (Final)
config.guess:
x86_64-unknown-linux-gnu
/etc/issue:
Slackware 14.1 \n \l
uname:
Linux vm-slackware 3.18.11 #2 SMP Tue Apr 7 13:09:53 CDT 2015 x86_64 Intel(R) Xeon(R) CPU E31230 @ 3.20GHz GenuineIntel GNU/Linux
(local) version:
OS, ker|rel, machine: Linux, 3.18.11, x86_64
Distribution : Slackware 14.1
config.guess:
x86_64-unknown-freebsd11.0
/etc/issue:
cat: /etc/issue: No such file or directory
uname:
FreeBSD vm-freebsd 11.0-RELEASE-p9 FreeBSD 11.0-RELEASE-p9 #0: Tue Apr 11 08:48:40 UTC 2017 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
(local) version:
OS, ker|rel, machine: FreeBSD, 11.0-RELEASE-p9, amd64
config.guess:
i386-pc-solaris2.11
/etc/issue:
cat: cannot open /etc/issue: No such file or directory
uname:
SunOS vm-solaris 5.11 11.3 i86pc i386 i86pc
(local) version:
OS, ker|rel, machine: SunOS, 5.11, i86pc
Distribution : Solaris 11.3 X86
config.guess:
x86_64-apple-darwin18.7.0
/etc/issue:
cat: /etc/issue: No such file or directory
uname:
Darwin lmin 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64
(local) version:
OS, ker|rel, machine: Apple/BSD, Darwin 18.7.0, x86_64
Distribution : macOS 10.14.6 (18G103), Mojave
Some details for config.guess
:
config.guess guess the build system triplet (man)
Path : ~/bin/config.guess
Version : GNU config.guess (2016-02-11)
Length : 1455 lines
Type : POSIX shell script, ASCII text executable
Shebang : #! /bin/sh
Help : probably available with -h,--help
Home : http://savannah.gnu.org/projects/config (doc)
Best wishes ... cheers, drl