From 6ee44e32be259706aed9b1439b71971a165b198c Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Fri, 6 May 2011 10:16:04 -0700 Subject: [PATCH] Fix awk usage The zpool_id and zpool_layout helper scripts have been updated to use the more common /usr/bin/awk symlink. On Fedora/Redhat systems there are both /bin/awk and /usr/bin/awk symlinks to your installed version of awk. On Debian/Ubuntu systems only the /usr/bin/awk symlink exists. Additionally, add the '\<' token to the beginning of the regex pattern to prevent partial matches. This pattern only appears to work with gawk despite the mawk man page claiming to support this extended regex. Thus you will need to have gawk installed to use these optional helper scripts. A comment has been added to the script to reflect this reality. --- cmd/zpool_id/zpool_id | 7 ++++--- cmd/zpool_layout/zpool_layout | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/cmd/zpool_id/zpool_id b/cmd/zpool_id/zpool_id index c363784..f74504c 100755 --- a/cmd/zpool_id/zpool_id +++ b/cmd/zpool_id/zpool_id @@ -2,7 +2,7 @@ CONFIG=${CONFIG:-/etc/zfs/zdev.conf} PATH_ID=${PATH_ID:-/lib/udev/path_id} -AWK=${AWK:-/bin/awk} +AWK=${AWK:-/usr/bin/awk} die() { echo "Error: $*" @@ -47,8 +47,9 @@ eval `${PATH_ID} ${DEVICE}` # configuration file which is of the format . # Lines starting with #'s are treated as comments and ignored. # Exact matches are required, wild cards are not supported, -# and only the first match is returned. -ID_ZPOOL=`${AWK} "/${ID_PATH}\>/ && !/^#/ { print \\$1; exit }" ${CONFIG}` +# and only the first match is returned. Also note the following +# regex pattern only appears to work with gawk, not mawk or awk. +ID_ZPOOL=`${AWK} "/\<${ID_PATH}\>/ && !/^#/ { print \\$1; exit }" ${CONFIG}` [ -z ${ID_ZPOOL} ] && die "Missing ID_ZPOOL for ID_PATH: ${ID_PATH}" if [ ${ID_ZPOOL} ]; then diff --git a/cmd/zpool_layout/zpool_layout b/cmd/zpool_layout/zpool_layout index 7f19dc0..26d3ec2 100755 --- a/cmd/zpool_layout/zpool_layout +++ b/cmd/zpool_layout/zpool_layout @@ -12,7 +12,7 @@ # /etc/zfs/zdev.conf file, it allows the by-path naming convertion # to change and still keep the simple naming. # -AWK=${AWK:-/bin/awk} +AWK=${AWK:-/usr/bin/awk} CONFIG=${CONFIG:-/etc/zfs/zdev.conf} BUSES=( 01 02 03 ) PORTS=( 4 0 ) -- 1.8.3.1