svn commit: r330333 - stable/11/bin/freebsd-version
Eitan Adler
eadler at FreeBSD.org
Sat Mar 3 11:18:39 UTC 2018
Author: eadler
Date: Sat Mar 3 11:18:38 2018
New Revision: 330333
URL: https://svnweb.freebsd.org/changeset/base/330333
Log:
MFC r325800:
Add a -r option to print the running kernel version.
Modified:
stable/11/bin/freebsd-version/freebsd-version.1
stable/11/bin/freebsd-version/freebsd-version.sh.in
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/bin/freebsd-version/freebsd-version.1
==============================================================================
--- stable/11/bin/freebsd-version/freebsd-version.1 Sat Mar 3 11:17:05 2018 (r330332)
+++ stable/11/bin/freebsd-version/freebsd-version.1 Sat Mar 3 11:18:38 2018 (r330333)
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 5, 2013
+.Dd November 14, 2017
.Dt FREEBSD-VERSION 1
.Os
.Sh NAME
@@ -33,7 +33,7 @@
.Nd print the version and patch level of the installed system
.Sh SYNOPSIS
.Nm
-.Op Fl ku
+.Op Fl kru
.Sh DESCRIPTION
The
.Nm
@@ -50,6 +50,11 @@ if a new kernel has been installed but the system has
rebooted,
.Nm
will print the version and patch level of the new kernel.
+.It Fl r
+Print the version and patch level of the running kernel.
+Unlike
+.Xr uname 1 ,
+this is unaffected by environment variables.
.It Fl u
Print the version and patch level of the installed userland.
These are hardcoded into
@@ -57,14 +62,10 @@ These are hardcoded into
during the build.
.El
.Pp
-If both
-.Fl k
-and
-.Fl u
-are specified,
+If several of the above options are specified,
.Nm
-will print the kernel version first, then the userland version, on
-separate lines.
+will print the installed kernel version first, then the running kernel
+version, and finally the userland version, on separate lines.
If neither is specified, it will print the userland version only.
.Sh IMPLEMENTATION NOTES
The
Modified: stable/11/bin/freebsd-version/freebsd-version.sh.in
==============================================================================
--- stable/11/bin/freebsd-version/freebsd-version.sh.in Sat Mar 3 11:17:05 2018 (r330332)
+++ stable/11/bin/freebsd-version/freebsd-version.sh.in Sat Mar 3 11:18:38 2018 (r330333)
@@ -38,7 +38,7 @@ LOADER_RE1='^\([A-Z_a-z][0-9A-Z_a-z]*=[-./0-9A-Z_a-z]\
LOADER_RE2='^\([A-Z_a-z][0-9A-Z_a-z]*="[-./0-9A-Z_a-z]\{1,\}"\).*$'
KERNEL_RE='^@@TYPE@@ \([-.0-9A-Za-z]\{1,\}\) .*$'
-progname=$(basename $0)
+progname=${0##*/}
#
# Print an error message and exit.
@@ -71,6 +71,13 @@ kernel_version() {
}
#
+# Print the version of the currently running kernel.
+#
+running_version() {
+ sysctl -n kern.osrelease
+}
+
+#
# Print the hardcoded userland version.
#
userland_version() {
@@ -81,7 +88,7 @@ userland_version() {
# Print a usage string and exit.
#
usage() {
- echo "usage: $progname [-ku]" >&2
+ echo "usage: $progname [-kru]" >&2
exit 1
}
@@ -90,11 +97,14 @@ usage() {
#
main() {
# parse command-line arguments
- while getopts "ku" option ; do
+ while getopts "kru" option ; do
case $option in
k)
opt_k=1
;;
+ r)
+ opt_r=1
+ ;;
u)
opt_u=1
;;
@@ -108,13 +118,18 @@ main() {
fi
# default is -u
- if [ $((opt_k + opt_u)) -eq 0 ] ; then
+ if [ $((opt_k + opt_r + opt_u)) -eq 0 ] ; then
opt_u=1
fi
- # print kernel version
+ # print installed kernel version
if [ $opt_k ] ; then
kernel_version
+ fi
+
+ # print running kernel version
+ if [ $opt_r ] ; then
+ running_version
fi
# print userland version
More information about the svn-src-stable-11
mailing list