Print this page
7290 ZFS test suite needs to control what utilities it can run
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>

@@ -20,11 +20,11 @@
 #
 
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
-# Copyright (c) 2012, 2015 by Delphix. All rights reserved.
+# Copyright (c) 2012, 2016 by Delphix. All rights reserved.
 # Copyright 2016 Nexenta Systems, Inc.
 #
 
 . ${STF_TOOLS}/contrib/include/logapi.shlib
 

@@ -45,21 +45,21 @@
         typeset out dir name ret
 
         case $fstype in
                 zfs)
                         if [[ "$1" == "/"* ]] ; then
-                                for out in $($ZFS mount | $AWK '{print $2}'); do
+                                for out in $(zfs mount | awk '{print $2}'); do
                                         [[ $1 == $out ]] && return 0
                                 done
                         else
-                                for out in $($ZFS mount | $AWK '{print $1}'); do
+                                for out in $(zfs mount | awk '{print $1}'); do
                                         [[ $1 == $out ]] && return 0
                                 done
                         fi
                 ;;
                 ufs|nfs)
-                        out=$($DF -F $fstype $1 2>/dev/null)
+                        out=$(df -F $fstype $1 2>/dev/null)
                         ret=$?
                         (($ret != 0)) && return $ret
 
                         dir=${out%%\(*}
                         dir=${dir%% *}

@@ -102,11 +102,11 @@
 #
 # $1 - line to split
 
 function splitline
 {
-        $ECHO $1 | $SED "s/,/ /g"
+        echo $1 | sed "s/,/ /g"
 }
 
 function default_setup
 {
         default_setup_noexit "$@"

@@ -125,40 +125,40 @@
 
         if is_global_zone; then
                 if poolexists $TESTPOOL ; then
                         destroy_pool $TESTPOOL
                 fi
-                [[ -d /$TESTPOOL ]] && $RM -rf /$TESTPOOL
-                log_must $ZPOOL create -f $TESTPOOL $disklist
+                [[ -d /$TESTPOOL ]] && rm -rf /$TESTPOOL
+                log_must zpool create -f $TESTPOOL $disklist
         else
                 reexport_pool
         fi
 
-        $RM -rf $TESTDIR  || log_unresolved Could not remove $TESTDIR
-        $MKDIR -p $TESTDIR || log_unresolved Could not create $TESTDIR
+        rm -rf $TESTDIR  || log_unresolved Could not remove $TESTDIR
+        mkdir -p $TESTDIR || log_unresolved Could not create $TESTDIR
 
-        log_must $ZFS create $TESTPOOL/$TESTFS
-        log_must $ZFS set mountpoint=$TESTDIR $TESTPOOL/$TESTFS
+        log_must zfs create $TESTPOOL/$TESTFS
+        log_must zfs set mountpoint=$TESTDIR $TESTPOOL/$TESTFS
 
         if [[ -n $container ]]; then
-                $RM -rf $TESTDIR1  || \
+                rm -rf $TESTDIR1  || \
                         log_unresolved Could not remove $TESTDIR1
-                $MKDIR -p $TESTDIR1 || \
+                mkdir -p $TESTDIR1 || \
                         log_unresolved Could not create $TESTDIR1
 
-                log_must $ZFS create $TESTPOOL/$TESTCTR
-                log_must $ZFS set canmount=off $TESTPOOL/$TESTCTR
-                log_must $ZFS create $TESTPOOL/$TESTCTR/$TESTFS1
-                log_must $ZFS set mountpoint=$TESTDIR1 \
+                log_must zfs create $TESTPOOL/$TESTCTR
+                log_must zfs set canmount=off $TESTPOOL/$TESTCTR
+                log_must zfs create $TESTPOOL/$TESTCTR/$TESTFS1
+                log_must zfs set mountpoint=$TESTDIR1 \
                     $TESTPOOL/$TESTCTR/$TESTFS1
         fi
 
         if [[ -n $volume ]]; then
                 if is_global_zone ; then
-                        log_must $ZFS create -V $VOLSIZE $TESTPOOL/$TESTVOL
+                        log_must zfs create -V $VOLSIZE $TESTPOOL/$TESTVOL
                 else
-                        log_must $ZFS create $TESTPOOL/$TESTVOL
+                        log_must zfs create $TESTPOOL/$TESTVOL
                 fi
         fi
 }
 
 #

@@ -213,11 +213,11 @@
                 log_fail "$fs_vol@$snap already exists."
         fi
         datasetexists $fs_vol || \
                 log_fail "$fs_vol must exist."
 
-        log_must $ZFS snapshot $fs_vol@$snap
+        log_must zfs snapshot $fs_vol@$snap
 }
 
 #
 # Create a clone from a snapshot, default clone name is $TESTCLONE.
 #

@@ -232,11 +232,11 @@
         [[ -z $snap ]] && \
                 log_fail "Snapshot name is undefined."
         [[ -z $clone ]] && \
                 log_fail "Clone name is undefined."
 
-        log_must $ZFS clone $snap $clone
+        log_must zfs clone $snap $clone
 }
 
 function default_mirror_setup
 {
         default_mirror_setup_noexit $1 $2 $3

@@ -257,14 +257,14 @@
 
         [[ -z $primary ]] && \
                 log_fail "$func: No parameters passed"
         [[ -z $secondary ]] && \
                 log_fail "$func: No secondary partition passed"
-        [[ -d /$TESTPOOL ]] && $RM -rf /$TESTPOOL
-        log_must $ZPOOL create -f $TESTPOOL mirror $@
-        log_must $ZFS create $TESTPOOL/$TESTFS
-        log_must $ZFS set mountpoint=$TESTDIR $TESTPOOL/$TESTFS
+        [[ -d /$TESTPOOL ]] && rm -rf /$TESTPOOL
+        log_must zpool create -f $TESTPOOL mirror $@
+        log_must zfs create $TESTPOOL/$TESTFS
+        log_must zfs set mountpoint=$TESTDIR $TESTPOOL/$TESTFS
 }
 
 #
 # create a number of mirrors.
 # We create a number($1) of 2 way mirrors using the pairs of disks named

@@ -277,12 +277,12 @@
         typeset -i nmirrors=$1
 
         shift
         while ((nmirrors > 0)); do
                 log_must test -n "$1" -a -n "$2"
-                [[ -d /$TESTPOOL$nmirrors ]] && $RM -rf /$TESTPOOL$nmirrors
-                log_must $ZPOOL create -f $TESTPOOL$nmirrors mirror $1 $2
+                [[ -d /$TESTPOOL$nmirrors ]] && rm -rf /$TESTPOOL$nmirrors
+                log_must zpool create -f $TESTPOOL$nmirrors mirror $1 $2
                 shift 2
                 ((nmirrors = nmirrors - 1))
         done
 }
 

@@ -298,12 +298,12 @@
         typeset -i nraidzs=$1
 
         shift
         while ((nraidzs > 0)); do
                 log_must test -n "$1" -a -n "$2"
-                [[ -d /$TESTPOOL$nraidzs ]] && $RM -rf /$TESTPOOL$nraidzs
-                log_must $ZPOOL create -f $TESTPOOL$nraidzs raidz $1 $2
+                [[ -d /$TESTPOOL$nraidzs ]] && rm -rf /$TESTPOOL$nraidzs
+                log_must zpool create -f $TESTPOOL$nraidzs raidz $1 $2
                 shift 2
                 ((nraidzs = nraidzs - 1))
         done
 }
 

@@ -329,14 +329,14 @@
 
         if [[ ${#disks[*]} -lt 2 ]]; then
                 log_fail "A raid-z requires a minimum of two disks."
         fi
 
-        [[ -d /$TESTPOOL ]] && $RM -rf /$TESTPOOL
-        log_must $ZPOOL create -f $TESTPOOL raidz $1 $2 $3
-        log_must $ZFS create $TESTPOOL/$TESTFS
-        log_must $ZFS set mountpoint=$TESTDIR $TESTPOOL/$TESTFS
+        [[ -d /$TESTPOOL ]] && rm -rf /$TESTPOOL
+        log_must zpool create -f $TESTPOOL raidz $1 $2 $3
+        log_must zfs create $TESTPOOL/$TESTFS
+        log_must zfs set mountpoint=$TESTDIR $TESTPOOL/$TESTFS
 
         log_pass
 }
 
 #

@@ -361,14 +361,14 @@
         #
         # Destroying the pool will also destroy any
         # filesystems it contains.
         #
         if is_global_zone; then
-                $ZFS unmount -a > /dev/null 2>&1
-                exclude=`eval $ECHO \"'(${KEEP})'\"`
-                ALL_POOLS=$($ZPOOL list -H -o name \
-                    | $GREP -v "$NO_POOLS" | $EGREP -v "$exclude")
+                zfs unmount -a > /dev/null 2>&1
+                exclude=`eval echo \"'(${KEEP})'\"`
+                ALL_POOLS=$(zpool list -H -o name \
+                    | grep -v "$NO_POOLS" | egrep -v "$exclude")
                 # Here, we loop through the pools we're allowed to
                 # destroy, only destroying them if it's safe to do
                 # so.
                 while [ ! -z ${ALL_POOLS} ]
                 do

@@ -376,61 +376,61 @@
                         do
                                 if safe_to_destroy_pool $pool ;
                                 then
                                         destroy_pool $pool
                                 fi
-                                ALL_POOLS=$($ZPOOL list -H -o name \
-                                    | $GREP -v "$NO_POOLS" \
-                                    | $EGREP -v "$exclude")
+                                ALL_POOLS=$(zpool list -H -o name \
+                                    | grep -v "$NO_POOLS" \
+                                    | egrep -v "$exclude")
                         done
                 done
 
-                $ZFS mount -a
+                zfs mount -a
         else
                 typeset fs=""
-                for fs in $($ZFS list -H -o name \
-                    | $GREP "^$ZONE_POOL/$ZONE_CTR[01234]/"); do
+                for fs in $(zfs list -H -o name \
+                    | grep "^$ZONE_POOL/$ZONE_CTR[01234]/"); do
                         datasetexists $fs && \
-                                log_must $ZFS destroy -Rf $fs
+                                log_must zfs destroy -Rf $fs
                 done
 
                 # Need cleanup here to avoid garbage dir left.
-                for fs in $($ZFS list -H -o name); do
+                for fs in $(zfs list -H -o name); do
                         [[ $fs == /$ZONE_POOL ]] && continue
-                        [[ -d $fs ]] && log_must $RM -rf $fs/*
+                        [[ -d $fs ]] && log_must rm -rf $fs/*
                 done
 
                 #
                 # Reset the $ZONE_POOL/$ZONE_CTR[01234] file systems property to
                 # the default value
                 #
-                for fs in $($ZFS list -H -o name); do
+                for fs in $(zfs list -H -o name); do
                         if [[ $fs == $ZONE_POOL/$ZONE_CTR[01234] ]]; then
-                                log_must $ZFS set reservation=none $fs
-                                log_must $ZFS set recordsize=128K $fs
-                                log_must $ZFS set mountpoint=/$fs $fs
+                                log_must zfs set reservation=none $fs
+                                log_must zfs set recordsize=128K $fs
+                                log_must zfs set mountpoint=/$fs $fs
                                 typeset enc=""
                                 enc=$(get_prop encryption $fs)
                                 if [[ $? -ne 0 ]] || [[ -z "$enc" ]] || \
                                         [[ "$enc" == "off" ]]; then
-                                        log_must $ZFS set checksum=on $fs
+                                        log_must zfs set checksum=on $fs
                                 fi
-                                log_must $ZFS set compression=off $fs
-                                log_must $ZFS set atime=on $fs
-                                log_must $ZFS set devices=off $fs
-                                log_must $ZFS set exec=on $fs
-                                log_must $ZFS set setuid=on $fs
-                                log_must $ZFS set readonly=off $fs
-                                log_must $ZFS set snapdir=hidden $fs
-                                log_must $ZFS set aclmode=groupmask $fs
-                                log_must $ZFS set aclinherit=secure $fs
+                                log_must zfs set compression=off $fs
+                                log_must zfs set atime=on $fs
+                                log_must zfs set devices=off $fs
+                                log_must zfs set exec=on $fs
+                                log_must zfs set setuid=on $fs
+                                log_must zfs set readonly=off $fs
+                                log_must zfs set snapdir=hidden $fs
+                                log_must zfs set aclmode=groupmask $fs
+                                log_must zfs set aclinherit=secure $fs
                         fi
                 done
         fi
 
         [[ -d $TESTDIR ]] && \
-                log_must $RM -rf $TESTDIR
+                log_must rm -rf $TESTDIR
 }
 
 
 #
 # Common function used to cleanup storage pools, file systems

@@ -442,20 +442,20 @@
                 reexport_pool
         fi
 
         ismounted $TESTPOOL/$TESTCTR/$TESTFS1
         [[ $? -eq 0 ]] && \
-            log_must $ZFS unmount $TESTPOOL/$TESTCTR/$TESTFS1
+            log_must zfs unmount $TESTPOOL/$TESTCTR/$TESTFS1
 
         datasetexists $TESTPOOL/$TESTCTR/$TESTFS1 && \
-            log_must $ZFS destroy -R $TESTPOOL/$TESTCTR/$TESTFS1
+            log_must zfs destroy -R $TESTPOOL/$TESTCTR/$TESTFS1
 
         datasetexists $TESTPOOL/$TESTCTR && \
-            log_must $ZFS destroy -Rf $TESTPOOL/$TESTCTR
+            log_must zfs destroy -Rf $TESTPOOL/$TESTCTR
 
         [[ -e $TESTDIR1 ]] && \
-            log_must $RM -rf $TESTDIR1 > /dev/null 2>&1
+            log_must rm -rf $TESTDIR1 > /dev/null 2>&1
 
         default_cleanup
 }
 
 #

@@ -482,13 +482,13 @@
                 mtpt=$(get_prop mountpoint $snap)
                 (($? != 0)) && \
                         log_fail "get_prop mountpoint $snap failed."
         fi
 
-        log_must $ZFS destroy $snap
+        log_must zfs destroy $snap
         [[ $mtpt != "" && -d $mtpt ]] && \
-                log_must $RM -rf $mtpt
+                log_must rm -rf $mtpt
 }
 
 #
 # Common function used to cleanup clone.
 #

@@ -508,22 +508,22 @@
                 mtpt=$(get_prop mountpoint $clone)
                 (($? != 0)) && \
                         log_fail "get_prop mountpoint $clone failed."
         fi
 
-        log_must $ZFS destroy $clone
+        log_must zfs destroy $clone
         [[ $mtpt != "" && -d $mtpt ]] && \
-                log_must $RM -rf $mtpt
+                log_must rm -rf $mtpt
 }
 
 # Return 0 if a snapshot exists; $? otherwise
 #
 # $1 - snapshot name
 
 function snapexists
 {
-        $ZFS list -H -t snapshot "$1" > /dev/null 2>&1
+        zfs list -H -t snapshot "$1" > /dev/null 2>&1
         return $?
 }
 
 #
 # Set a property to a certain value on a dataset.

@@ -544,11 +544,11 @@
         if (($# < 3)); then
                 log_note "$fn: Insufficient parameters (need 3, had $#)"
                 return 1
         fi
         typeset output=
-        output=$($ZFS set $2=$3 $1 2>&1)
+        output=$(zfs set $2=$3 $1 2>&1)
         typeset rv=$?
         if ((rv != 0)); then
                 log_note "Setting property on $1 failed."
                 log_note "property $2=$3"
                 log_note "Return Code: $rv"

@@ -576,11 +576,11 @@
 
         [[ -z $dataset ]] && return 1
 
         typeset confset=
         typeset -i found=0
-        for confset in $($ZFS list); do
+        for confset in $(zfs list); do
                 if [[ $dataset = $confset ]]; then
                         found=1
                         break
                 fi
         done

@@ -639,24 +639,24 @@
         typeset disk=$4
         [[ -z $slicenum || -z $size || -z $disk ]] && \
             log_fail "The slice, size or disk name is unspecified."
         typeset format_file=/var/tmp/format_in.$$
 
-        $ECHO "partition" >$format_file
-        $ECHO "$slicenum" >> $format_file
-        $ECHO "" >> $format_file
-        $ECHO "" >> $format_file
-        $ECHO "$start" >> $format_file
-        $ECHO "$size" >> $format_file
-        $ECHO "label" >> $format_file
-        $ECHO "" >> $format_file
-        $ECHO "q" >> $format_file
-        $ECHO "q" >> $format_file
+        echo "partition" >$format_file
+        echo "$slicenum" >> $format_file
+        echo "" >> $format_file
+        echo "" >> $format_file
+        echo "$start" >> $format_file
+        echo "$size" >> $format_file
+        echo "label" >> $format_file
+        echo "" >> $format_file
+        echo "q" >> $format_file
+        echo "q" >> $format_file
 
-        $FORMAT -e -s -d $disk -f $format_file
+        format -e -s -d $disk -f $format_file
         typeset ret_val=$?
-        $RM -f $format_file
+        rm -f $format_file
         [[ $ret_val -ne 0 ]] && \
             log_fail "Unable to format $disk slice $slicenum to $size"
         return 0
 }
 

@@ -674,20 +674,20 @@
         disk=${disk#/dev/dsk/}
         disk=${disk#/dev/rdsk/}
         disk=${disk%s*}
 
         typeset -i ratio=0
-        ratio=$($PRTVTOC /dev/rdsk/${disk}s2 | \
-                $GREP "sectors\/cylinder" | \
-                $AWK '{print $2}')
+        ratio=$(prtvtoc /dev/rdsk/${disk}s2 | \
+                grep "sectors\/cylinder" | \
+                awk '{print $2}')
 
         if ((ratio == 0)); then
                 return
         fi
 
-        typeset -i endcyl=$($PRTVTOC -h /dev/rdsk/${disk}s2 |
-                $NAWK -v token="$slice" '{if ($1==token) print $6}')
+        typeset -i endcyl=$(prtvtoc -h /dev/rdsk/${disk}s2 |
+                nawk -v token="$slice" '{if ($1==token) print $6}')
 
         ((endcyl = (endcyl + 1) / ratio))
         echo $endcyl
 }
 

@@ -717,11 +717,11 @@
         done
 }
 
 #
 # This function continues to write to a filenum number of files into dirnum
-# number of directories until either $FILE_WRITE returns an error or the
+# number of directories until either file_write returns an error or the
 # maximum number of files per directory have been written.
 #
 # Usage:
 # fill_fs [destdir] [dirnum] [filenum] [bytes] [num_writes] [data]
 #

@@ -753,27 +753,27 @@
         typeset -i odirnum=1
         typeset -i idirnum=0
         typeset -i fn=0
         typeset -i retval=0
 
-        log_must $MKDIR -p $destdir/$idirnum
+        log_must mkdir -p $destdir/$idirnum
         while (($odirnum > 0)); do
                 if ((dirnum >= 0 && idirnum >= dirnum)); then
                         odirnum=0
                         break
                 fi
-                $FILE_WRITE -o create -f $destdir/$idirnum/$TESTFILE.$fn \
+                file_write -o create -f $destdir/$idirnum/$TESTFILE.$fn \
                     -b $bytes -c $num_writes -d $data
                 retval=$?
                 if (($retval != 0)); then
                         odirnum=0
                         break
                 fi
                 if (($fn >= $filenum)); then
                         fn=0
                         ((idirnum = idirnum + 1))
-                        log_must $MKDIR -p $destdir/$idirnum
+                        log_must mkdir -p $destdir/$idirnum
                 else
                         ((fn = fn + 1))
                 fi
         done
         return $retval

@@ -789,18 +789,18 @@
 {
         typeset prop_val
         typeset prop=$1
         typeset dataset=$2
 
-        prop_val=$($ZFS get -pH -o value $prop $dataset 2>/dev/null)
+        prop_val=$(zfs get -pH -o value $prop $dataset 2>/dev/null)
         if [[ $? -ne 0 ]]; then
                 log_note "Unable to get $prop property for dataset " \
                 "$dataset"
                 return 1
         fi
 
-        $ECHO $prop_val
+        echo $prop_val
         return 0
 }
 
 #
 # Simple function to get the specified property of pool. If unable to

@@ -811,12 +811,12 @@
         typeset prop_val
         typeset prop=$1
         typeset pool=$2
 
         if poolexists $pool ; then
-                prop_val=$($ZPOOL get $prop $pool 2>/dev/null | $TAIL -1 | \
-                        $AWK '{print $3}')
+                prop_val=$(zpool get $prop $pool 2>/dev/null | tail -1 | \
+                        awk '{print $3}')
                 if [[ $? -ne 0 ]]; then
                         log_note "Unable to get $prop property for pool " \
                         "$pool"
                         return 1
                 fi

@@ -823,11 +823,11 @@
         else
                 log_note "Pool $pool not exists."
                 return 1
         fi
 
-        $ECHO $prop_val
+        echo $prop_val
         return 0
 }
 
 # Return 0 if a pool exists; $? otherwise
 #

@@ -840,11 +840,11 @@
         if [[ -z $pool ]]; then
                 log_note "No pool name given."
                 return 1
         fi
 
-        $ZPOOL get name "$pool" > /dev/null 2>&1
+        zpool get name "$pool" > /dev/null 2>&1
         return $?
 }
 
 # Return 0 if all the specified datasets exist; $? otherwise
 #

@@ -855,11 +855,11 @@
                 log_note "No dataset name given."
                 return 1
         fi
 
         while (($# > 0)); do
-                $ZFS get name $1 > /dev/null 2>&1 || \
+                zfs get name $1 > /dev/null 2>&1 || \
                         return $?
                 shift
         done
 
         return 0

@@ -874,11 +874,11 @@
                 log_note "No dataset name given."
                 return 1
         fi
 
         while (($# > 0)); do
-                $ZFS list -H -t filesystem,snapshot,volume $1 > /dev/null 2>&1 \
+                zfs list -H -t filesystem,snapshot,volume $1 > /dev/null 2>&1 \
                     && return 1
                 shift
         done
 
         return 0

@@ -906,17 +906,17 @@
                                         ;;
                         esac
                 fi
         fi
 
-        for mtpt in `$SHARE | $AWK '{print $2}'` ; do
+        for mtpt in `share | awk '{print $2}'` ; do
                 if [[ $mtpt == $fs ]] ; then
                         return 0
                 fi
         done
 
-        typeset stat=$($SVCS -H -o STA nfs/server:default)
+        typeset stat=$(svcs -H -o STA nfs/server:default)
         if [[ $stat != "ON" ]]; then
                 log_note "Current nfs/server status: $stat"
         fi
 
         return 1

@@ -946,11 +946,11 @@
 {
         typeset fs=$1
 
         is_shared $fs
         if (($? == 0)); then
-                log_must $ZFS unshare $fs
+                log_must zfs unshare $fs
         fi
 
         return 0
 }
 

@@ -965,55 +965,55 @@
                 log_note "Cannot trigger NFS server by sharing in LZ."
                 return
         fi
 
         typeset nfs_fmri="svc:/network/nfs/server:default"
-        if [[ $($SVCS -Ho STA $nfs_fmri) != "ON" ]]; then
+        if [[ $(svcs -Ho STA $nfs_fmri) != "ON" ]]; then
                 #
                 # Only really sharing operation can enable NFS server
                 # to online permanently.
                 #
                 typeset dummy=/tmp/dummy
 
                 if [[ -d $dummy ]]; then
-                        log_must $RM -rf $dummy
+                        log_must rm -rf $dummy
                 fi
 
-                log_must $MKDIR $dummy
-                log_must $SHARE $dummy
+                log_must mkdir $dummy
+                log_must share $dummy
 
                 #
                 # Waiting for fmri's status to be the final status.
                 # Otherwise, in transition, an asterisk (*) is appended for
                 # instances, unshare will reverse status to 'DIS' again.
                 #
                 # Waiting for 1's at least.
                 #
-                log_must $SLEEP 1
+                log_must sleep 1
                 timeout=10
-                while [[ timeout -ne 0 && $($SVCS -Ho STA $nfs_fmri) == *'*' ]]
+                while [[ timeout -ne 0 && $(svcs -Ho STA $nfs_fmri) == *'*' ]]
                 do
-                        log_must $SLEEP 1
+                        log_must sleep 1
 
                         ((timeout -= 1))
                 done
 
-                log_must $UNSHARE $dummy
-                log_must $RM -rf $dummy
+                log_must unshare $dummy
+                log_must rm -rf $dummy
         fi
 
-        log_note "Current NFS status: '$($SVCS -Ho STA,FMRI $nfs_fmri)'"
+        log_note "Current NFS status: '$(svcs -Ho STA,FMRI $nfs_fmri)'"
 }
 
 #
 # To verify whether calling process is in global zone
 #
 # Return 0 if in global zone, 1 in non-global zone
 #
 function is_global_zone
 {
-        typeset cur_zone=$($ZONENAME 2>/dev/null)
+        typeset cur_zone=$(zonename 2>/dev/null)
         if [[ $cur_zone != "global" ]]; then
                 return 1
         fi
         return 0
 }

@@ -1081,12 +1081,12 @@
         if poolexists $pool ; then
                 destroy_pool $pool
         fi
 
         if is_global_zone ; then
-                [[ -d /$pool ]] && $RM -rf /$pool
-                log_must $ZPOOL create -f $pool $@
+                [[ -d /$pool ]] && rm -rf /$pool
+                log_must zpool create -f $pool $@
         fi
 
         return 0
 }
 

@@ -1115,20 +1115,20 @@
                         # times allowing failures before requiring the destroy
                         # to succeed.
                         typeset -i wait_time=10 ret=1 count=0
                         must=""
                         while [[ $ret -ne 0 ]]; do
-                                $must $ZPOOL destroy -f $pool
+                                $must zpool destroy -f $pool
                                 ret=$?
                                 [[ $ret -eq 0 ]] && break
                                 log_note "zpool destroy failed with $ret"
                                 [[ count++ -ge 7 ]] && must=log_must
-                                $SLEEP $wait_time
+                                sleep $wait_time
                         done
 
                         [[ -d $mtpt ]] && \
-                                log_must $RM -rf $mtpt
+                                log_must rm -rf $mtpt
                 else
                         log_note "Pool does not exist. ($pool)"
                         return 1
                 fi
         fi

@@ -1155,100 +1155,100 @@
         typeset -i cntctr=5
         typeset -i i=0
 
         # Create pool and 5 container within it
         #
-        [[ -d /$pool_name ]] && $RM -rf /$pool_name
-        log_must $ZPOOL create -f $pool_name $DISKS
+        [[ -d /$pool_name ]] && rm -rf /$pool_name
+        log_must zpool create -f $pool_name $DISKS
         while ((i < cntctr)); do
-                log_must $ZFS create $pool_name/$prefix_ctr$i
+                log_must zfs create $pool_name/$prefix_ctr$i
                 ((i += 1))
         done
 
         # create a zvol
-        log_must $ZFS create -V 1g $pool_name/zone_zvol
+        log_must zfs create -V 1g $pool_name/zone_zvol
 
         #
         # If current system support slog, add slog device for pool
         #
         if verify_slog_support ; then
                 typeset sdevs="/var/tmp/sdev1 /var/tmp/sdev2"
-                log_must $MKFILE $MINVDEVSIZE $sdevs
-                log_must $ZPOOL add $pool_name log mirror $sdevs
+                log_must mkfile $MINVDEVSIZE $sdevs
+                log_must zpool add $pool_name log mirror $sdevs
         fi
 
         # this isn't supported just yet.
         # Create a filesystem. In order to add this to
         # the zone, it must have it's mountpoint set to 'legacy'
-        # log_must $ZFS create $pool_name/zfs_filesystem
-        # log_must $ZFS set mountpoint=legacy $pool_name/zfs_filesystem
+        # log_must zfs create $pool_name/zfs_filesystem
+        # log_must zfs set mountpoint=legacy $pool_name/zfs_filesystem
 
         [[ -d $zone_root ]] && \
-                log_must $RM -rf $zone_root/$zone_name
+                log_must rm -rf $zone_root/$zone_name
         [[ ! -d $zone_root ]] && \
-                log_must $MKDIR -p -m 0700 $zone_root/$zone_name
+                log_must mkdir -p -m 0700 $zone_root/$zone_name
 
         # Create zone configure file and configure the zone
         #
         typeset zone_conf=/tmp/zone_conf.$$
-        $ECHO "create" > $zone_conf
-        $ECHO "set zonepath=$zone_root/$zone_name" >> $zone_conf
-        $ECHO "set autoboot=true" >> $zone_conf
+        echo "create" > $zone_conf
+        echo "set zonepath=$zone_root/$zone_name" >> $zone_conf
+        echo "set autoboot=true" >> $zone_conf
         i=0
         while ((i < cntctr)); do
-                $ECHO "add dataset" >> $zone_conf
-                $ECHO "set name=$pool_name/$prefix_ctr$i" >> \
+                echo "add dataset" >> $zone_conf
+                echo "set name=$pool_name/$prefix_ctr$i" >> \
                         $zone_conf
-                $ECHO "end" >> $zone_conf
+                echo "end" >> $zone_conf
                 ((i += 1))
         done
 
         # add our zvol to the zone
-        $ECHO "add device" >> $zone_conf
-        $ECHO "set match=/dev/zvol/dsk/$pool_name/zone_zvol" >> $zone_conf
-        $ECHO "end" >> $zone_conf
+        echo "add device" >> $zone_conf
+        echo "set match=/dev/zvol/dsk/$pool_name/zone_zvol" >> $zone_conf
+        echo "end" >> $zone_conf
 
         # add a corresponding zvol rdsk to the zone
-        $ECHO "add device" >> $zone_conf
-        $ECHO "set match=/dev/zvol/rdsk/$pool_name/zone_zvol" >> $zone_conf
-        $ECHO "end" >> $zone_conf
+        echo "add device" >> $zone_conf
+        echo "set match=/dev/zvol/rdsk/$pool_name/zone_zvol" >> $zone_conf
+        echo "end" >> $zone_conf
 
         # once it's supported, we'll add our filesystem to the zone
-        # $ECHO "add fs" >> $zone_conf
-        # $ECHO "set type=zfs" >> $zone_conf
-        # $ECHO "set special=$pool_name/zfs_filesystem" >> $zone_conf
-        # $ECHO "set dir=/export/zfs_filesystem" >> $zone_conf
-        # $ECHO "end" >> $zone_conf
+        # echo "add fs" >> $zone_conf
+        # echo "set type=zfs" >> $zone_conf
+        # echo "set special=$pool_name/zfs_filesystem" >> $zone_conf
+        # echo "set dir=/export/zfs_filesystem" >> $zone_conf
+        # echo "end" >> $zone_conf
 
-        $ECHO "verify" >> $zone_conf
-        $ECHO "commit" >> $zone_conf
-        log_must $ZONECFG -z $zone_name -f $zone_conf
-        log_must $RM -f $zone_conf
+        echo "verify" >> $zone_conf
+        echo "commit" >> $zone_conf
+        log_must zonecfg -z $zone_name -f $zone_conf
+        log_must rm -f $zone_conf
 
         # Install the zone
-        $ZONEADM -z $zone_name install
+        zoneadm -z $zone_name install
         if (($? == 0)); then
-                log_note "SUCCESS: $ZONEADM -z $zone_name install"
+                log_note "SUCCESS: zoneadm -z $zone_name install"
         else
-                log_fail "FAIL: $ZONEADM -z $zone_name install"
+                log_fail "FAIL: zoneadm -z $zone_name install"
         fi
 
         # Install sysidcfg file
         #
         typeset sysidcfg=$zone_root/$zone_name/root/etc/sysidcfg
-        $ECHO "system_locale=C" > $sysidcfg
-        $ECHO  "terminal=dtterm" >> $sysidcfg
-        $ECHO  "network_interface=primary {" >> $sysidcfg
-        $ECHO  "hostname=$zone_name" >> $sysidcfg
-        $ECHO  "}" >> $sysidcfg
-        $ECHO  "name_service=NONE" >> $sysidcfg
-        $ECHO  "root_password=mo791xfZ/SFiw" >> $sysidcfg
-        $ECHO  "security_policy=NONE" >> $sysidcfg
-        $ECHO  "timezone=US/Eastern" >> $sysidcfg
+        echo "system_locale=C" > $sysidcfg
+        echo  "terminal=dtterm" >> $sysidcfg
+        echo  "network_interface=primary {" >> $sysidcfg
+        echo  "hostname=$zone_name" >> $sysidcfg
+        echo  "}" >> $sysidcfg
+        echo  "name_service=NONE" >> $sysidcfg
+        echo  "root_password=mo791xfZ/SFiw" >> $sysidcfg
+        echo  "security_policy=NONE" >> $sysidcfg
+        echo  "timezone=US/Eastern" >> $sysidcfg
 
         # Boot this zone
-        log_must $ZONEADM -z $zone_name boot
+        log_must zoneadm -z $zone_name boot
 }
 
 #
 # Reexport TESTPOOL & TESTPOOL(1-4)
 #

@@ -1259,16 +1259,16 @@
 
         while ((i < cntctr)); do
                 if ((i == 0)); then
                         TESTPOOL=$ZONE_POOL/$ZONE_CTR$i
                         if ! ismounted $TESTPOOL; then
-                                log_must $ZFS mount $TESTPOOL
+                                log_must zfs mount $TESTPOOL
                         fi
                 else
                         eval TESTPOOL$i=$ZONE_POOL/$ZONE_CTR$i
                         if eval ! ismounted \$TESTPOOL$i; then
-                                log_must eval $ZFS mount \$TESTPOOL$i
+                                log_must eval zfs mount \$TESTPOOL$i
                         fi
                 fi
                 ((i += 1))
         done
 }

@@ -1282,11 +1282,11 @@
 {
         typeset pool=$1
         typeset disk=${2#/dev/dsk/}
         typeset state=$3
 
-        $ZPOOL status -v $pool | grep "$disk"  \
+        zpool status -v $pool | grep "$disk"  \
             | grep -i "$state" > /dev/null 2>&1
 
         return $?
 }
 

@@ -1308,11 +1308,11 @@
 
         if [[ -z $fs || -z $snap ]]; then
                 log_fail "Error name of snapshot '$dataset'."
         fi
 
-        $ECHO $(get_prop mountpoint $fs)/.zfs/snapshot/$snap
+        echo $(get_prop mountpoint $fs)/.zfs/snapshot/$snap
 }
 
 #
 # Given a pool and file system, this function will verify the file system
 # using the zdb internal tool. Note that the pool is exported and imported

@@ -1327,45 +1327,45 @@
         shift
         shift
         typeset dirs=$@
         typeset search_path=""
 
-        log_note "Calling $ZDB to verify filesystem '$filesys'"
-        $ZFS unmount -a > /dev/null 2>&1
-        log_must $ZPOOL export $pool
+        log_note "Calling zdb to verify filesystem '$filesys'"
+        zfs unmount -a > /dev/null 2>&1
+        log_must zpool export $pool
 
         if [[ -n $dirs ]] ; then
                 for dir in $dirs ; do
                         search_path="$search_path -d $dir"
                 done
         fi
 
-        log_must $ZPOOL import $search_path $pool
+        log_must zpool import $search_path $pool
 
-        $ZDB -cudi $filesys > $zdbout 2>&1
+        zdb -cudi $filesys > $zdbout 2>&1
         if [[ $? != 0 ]]; then
-                log_note "Output: $ZDB -cudi $filesys"
-                $CAT $zdbout
-                log_fail "$ZDB detected errors with: '$filesys'"
+                log_note "Output: zdb -cudi $filesys"
+                cat $zdbout
+                log_fail "zdb detected errors with: '$filesys'"
         fi
 
-        log_must $ZFS mount -a
-        log_must $RM -rf $zdbout
+        log_must zfs mount -a
+        log_must rm -rf $zdbout
 }
 
 #
 # Given a pool, and this function list all disks in the pool
 #
 function get_disklist # pool
 {
         typeset disklist=""
 
-        disklist=$($ZPOOL iostat -v $1 | $NAWK '(NR >4) {print $1}' | \
-            $GREP -v "\-\-\-\-\-" | \
-            $EGREP -v -e "^(mirror|raidz1|raidz2|spare|log|cache)$")
+        disklist=$(zpool iostat -v $1 | nawk '(NR >4) {print $1}' | \
+            grep -v "\-\-\-\-\-" | \
+            egrep -v -e "^(mirror|raidz1|raidz2|spare|log|cache)$")
 
-        $ECHO $disklist
+        echo $disklist
 }
 
 # /**
 #  This function kills a given list of processes after a time period. We use
 #  this in the stress tests instead of STF_TIMEOUT so that we can have processes

@@ -1382,18 +1382,18 @@
         shift
         typeset cpids="$@"
 
         log_note "Waiting for child processes($cpids). " \
                 "It could last dozens of minutes, please be patient ..."
-        log_must $SLEEP $TIMEOUT
+        log_must sleep $TIMEOUT
 
         log_note "Killing child processes after ${TIMEOUT} stress timeout."
         typeset pid
         for pid in $cpids; do
-                $PS -p $pid > /dev/null 2>&1
+                ps -p $pid > /dev/null 2>&1
                 if (($? == 0)); then
-                        log_must $KILL -USR1 $pid
+                        log_must kill -USR1 $pid
                 fi
         done
 }
 
 #

@@ -1463,13 +1463,13 @@
 {
         typeset pool=$1
         typeset token=$2
         typeset keyword=$3
 
-        $ZPOOL status -v "$pool" 2>/dev/null | $NAWK -v token="$token:" '
+        zpool status -v "$pool" 2>/dev/null | nawk -v token="$token:" '
                 ($1==token) {print $0}' \
-        | $GREP -i "$keyword" > /dev/null 2>&1
+        | grep -i "$keyword" > /dev/null 2>&1
 
         return $?
 }
 
 #

@@ -1537,35 +1537,35 @@
 #
 function verify_rsh_connect #rhost, username
 {
         typeset rhost=$1
         typeset username=$2
-        typeset rsh_cmd="$RSH -n"
+        typeset rsh_cmd="rsh -n"
         typeset cur_user=
 
-        $GETENT hosts $rhost >/dev/null 2>&1
+        getent hosts $rhost >/dev/null 2>&1
         if (($? != 0)); then
                 log_note "$rhost cannot be found from" \
                         "administrative database."
                 return 1
         fi
 
-        $PING $rhost 3 >/dev/null 2>&1
+        ping $rhost 3 >/dev/null 2>&1
         if (($? != 0)); then
                 log_note "$rhost is not reachable."
                 return 1
         fi
 
         if ((${#username} != 0)); then
                 rsh_cmd="$rsh_cmd -l $username"
                 cur_user="given user \"$username\""
         else
-                cur_user="current user \"`$LOGNAME`\""
+                cur_user="current user \"`logname`\""
         fi
 
-         if ! $rsh_cmd $rhost $TRUE; then
-                log_note "$RSH to $rhost is not accessible" \
+         if ! $rsh_cmd $rhost true; then
+                log_note "rsh to $rhost is not accessible" \
                         "with $cur_user."
                 return 1
         fi
 
         return 0

@@ -1618,30 +1618,30 @@
         shift; shift
         cmd_str="$@"
 
         err_file=/tmp/${rhost}.$$.err
         if ((${#ruser} == 0)); then
-                rsh_str="$RSH -n"
+                rsh_str="rsh -n"
         else
-                rsh_str="$RSH -n -l $ruser"
+                rsh_str="rsh -n -l $ruser"
         fi
 
         $rsh_str $rhost /usr/bin/ksh -c "'$cmd_str; \
                 print -u 2 \"status=\$?\"'" \
                 >/dev/null 2>$err_file
         ret=$?
         if (($ret != 0)); then
-                $CAT $err_file
-                $RM -f $std_file $err_file
-                log_fail  "$RSH itself failed with exit code $ret..."
+                cat $err_file
+                rm -f $std_file $err_file
+                log_fail  "rsh itself failed with exit code $ret..."
         fi
 
-         ret=$($GREP -v 'print -u 2' $err_file | $GREP 'status=' | \
-                $CUT -d= -f2)
-        (($ret != 0)) && $CAT $err_file >&2
+         ret=$(grep -v 'print -u 2' $err_file | grep 'status=' | \
+                cut -d= -f2)
+        (($ret != 0)) && cat $err_file >&2
 
-        $RM -f $err_file >/dev/null 2>&1
+        rm -f $err_file >/dev/null 2>&1
         return $ret
 }
 
 #
 # Get the SUNWstc-fs-zfs package installation path in a remote host

@@ -1650,14 +1650,14 @@
 function get_remote_pkgpath
 {
         typeset rhost=$1
         typeset pkgpath=""
 
-        pkgpath=$($RSH -n $rhost "$PKGINFO -l SUNWstc-fs-zfs | $GREP BASEDIR: |\
-                        $CUT -d: -f2")
+        pkgpath=$(rsh -n $rhost "pkginfo -l SUNWstc-fs-zfs | grep BASEDIR: |\
+                        cut -d: -f2")
 
-        $ECHO $pkgpath
+        echo $pkgpath
 }
 
 #/**
 # A function to find and locate free disks on a system or from given
 # disks as the parameter. It works by locating disks that are in use

@@ -1672,19 +1672,19 @@
 {
         sfi=/tmp/swaplist.$$
         dmpi=/tmp/dumpdev.$$
         max_finddisksnum=${MAX_FINDDISKSNUM:-6}
 
-        $SWAP -l > $sfi
-        $DUMPADM > $dmpi 2>/dev/null
+        swap -l > $sfi
+        dumpadm > $dmpi 2>/dev/null
 
 # write an awk script that can process the output of format
 # to produce a list of disks we know about. Note that we have
 # to escape "$2" so that the shell doesn't interpret it while
 # we're creating the awk script.
 # -------------------
-        $CAT > /tmp/find_disks.awk <<EOF
+        cat > /tmp/find_disks.awk <<EOF
 #!/bin/nawk -f
         BEGIN { FS="."; }
 
         /^Specify disk/{
                 searchdisks=0;

@@ -1701,33 +1701,33 @@
                 searchdisks=1;
         }
 EOF
 #---------------------
 
-        $CHMOD 755 /tmp/find_disks.awk
-        disks=${@:-$($ECHO "" | $FORMAT -e 2>/dev/null | /tmp/find_disks.awk)}
-        $RM /tmp/find_disks.awk
+        chmod 755 /tmp/find_disks.awk
+        disks=${@:-$(echo "" | format -e 2>/dev/null | /tmp/find_disks.awk)}
+        rm /tmp/find_disks.awk
 
         unused=""
         for disk in $disks; do
         # Check for mounted
-                $GREP "${disk}[sp]" /etc/mnttab >/dev/null
+                grep "${disk}[sp]" /etc/mnttab >/dev/null
                 (($? == 0)) && continue
         # Check for swap
-                $GREP "${disk}[sp]" $sfi >/dev/null
+                grep "${disk}[sp]" $sfi >/dev/null
                 (($? == 0)) && continue
         # check for dump device
-                $GREP "${disk}[sp]" $dmpi >/dev/null
+                grep "${disk}[sp]" $dmpi >/dev/null
                 (($? == 0)) && continue
         # check to see if this disk hasn't been explicitly excluded
         # by a user-set environment variable
-                $ECHO "${ZFS_HOST_DEVICES_IGNORE}" | $GREP "${disk}" > /dev/null
+                echo "${ZFS_HOST_DEVICES_IGNORE}" | grep "${disk}" > /dev/null
                 (($? == 0)) && continue
                 unused_candidates="$unused_candidates $disk"
         done
-        $RM $sfi
-        $RM $dmpi
+        rm $sfi
+        rm $dmpi
 
 # now just check to see if those disks do actually exist
 # by looking for a device pointing to the first slice in
 # each case. limit the number to max_finddisksnum
         count=0

@@ -1740,11 +1740,11 @@
                 fi
                 fi
         done
 
 # finally, return our disk list
-        $ECHO $unused
+        echo $unused
 }
 
 #
 # Add specified user to specified group
 #

@@ -1760,11 +1760,11 @@
 
         if ((${#gname} == 0 || ${#uname} == 0)); then
                 log_fail "group name or user name are not defined."
         fi
 
-        log_must $USERADD -g $gname -d $basedir/$uname -m $uname
+        log_must useradd -g $gname -d $basedir/$uname -m $uname
 
         return 0
 }
 
 #

@@ -1780,15 +1780,15 @@
 
         if ((${#user} == 0)); then
                 log_fail "login name is necessary."
         fi
 
-        if $ID $user > /dev/null 2>&1; then
-                log_must $USERDEL $user
+        if id $user > /dev/null 2>&1; then
+                log_must userdel $user
         fi
 
-        [[ -d $basedir/$user ]] && $RM -fr $basedir/$user
+        [[ -d $basedir/$user ]] && rm -fr $basedir/$user
 
         return 0
 }
 
 #

@@ -1805,11 +1805,11 @@
         fi
 
         # Assign 100 as the base gid
         typeset -i gid=100
         while true; do
-                $GROUPADD -g $gid $group > /dev/null 2>&1
+                groupadd -g $gid $group > /dev/null 2>&1
                 typeset -i ret=$?
                 case $ret in
                         0) return 0 ;;
                         # The gid is not  unique
                         4) ((gid += 1)) ;;

@@ -1828,17 +1828,17 @@
         typeset grp=$1
         if ((${#grp} == 0)); then
                 log_fail "group name is necessary."
         fi
 
-        $GROUPMOD -n $grp $grp > /dev/null 2>&1
+        groupmod -n $grp $grp > /dev/null 2>&1
         typeset -i ret=$?
         case $ret in
                 # Group does not exist.
                 6) return 0 ;;
                 # Name already exists as a group name
-                9) log_must $GROUPDEL $grp ;;
+                9) log_must groupdel $grp ;;
                 *) return 1 ;;
         esac
 
         return 0
 }

@@ -1856,33 +1856,33 @@
         # We check that by deleting the $1 pool, we're not
         # going to pull the rug out from other pools. Do this
         # by looking at all other pools, ensuring that they
         # aren't built from files or zvols contained in this pool.
 
-        for pool in $($ZPOOL list -H -o name)
+        for pool in $(zpool list -H -o name)
         do
                 ALTMOUNTPOOL=""
 
                 # this is a list of the top-level directories in each of the
                 # files that make up the path to the files the pool is based on
-                FILEPOOL=$($ZPOOL status -v $pool | $GREP /$1/ | \
-                        $AWK '{print $1}')
+                FILEPOOL=$(zpool status -v $pool | grep /$1/ | \
+                        awk '{print $1}')
 
                 # this is a list of the zvols that make up the pool
-                ZVOLPOOL=$($ZPOOL status -v $pool | $GREP "/dev/zvol/dsk/$1$" \
-                    | $AWK '{print $1}')
+                ZVOLPOOL=$(zpool status -v $pool | grep "/dev/zvol/dsk/$1$" \
+                    | awk '{print $1}')
 
                 # also want to determine if it's a file-based pool using an
                 # alternate mountpoint...
-                POOL_FILE_DIRS=$($ZPOOL status -v $pool | \
-                                        $GREP / | $AWK '{print $1}' | \
-                                        $AWK -F/ '{print $2}' | $GREP -v "dev")
+                POOL_FILE_DIRS=$(zpool status -v $pool | \
+                                        grep / | awk '{print $1}' | \
+                                        awk -F/ '{print $2}' | grep -v "dev")
 
                 for pooldir in $POOL_FILE_DIRS
                 do
-                        OUTPUT=$($ZFS list -H -r -o mountpoint $1 | \
-                                        $GREP "${pooldir}$" | $AWK '{print $1}')
+                        OUTPUT=$(zfs list -H -r -o mountpoint $1 | \
+                                        grep "${pooldir}$" | awk '{print $1}')
 
                         ALTMOUNTPOOL="${ALTMOUNTPOOL}${OUTPUT}"
                 done
 
 

@@ -1928,15 +1928,15 @@
                 COMPRESS_OPTS="on lzjb"
         elif [[ $1 == "zfs_set" ]] ; then
                 COMPRESS_OPTS="on off lzjb"
         fi
         typeset valid_opts="$COMPRESS_OPTS"
-        $ZFS get 2>&1 | $GREP gzip >/dev/null 2>&1
+        zfs get 2>&1 | grep gzip >/dev/null 2>&1
         if [[ $? -eq 0 ]]; then
                 valid_opts="$valid_opts $GZIP_OPTS"
         fi
-        $ECHO "$valid_opts"
+        echo "$valid_opts"
 }
 
 #
 # Verify zfs operation with -p option work as expected
 # $1 operation, value could be create, clone or rename

@@ -1985,26 +1985,26 @@
                         ;;
         esac
 
         # make sure the upper level filesystem does not exist
         if datasetexists ${newdataset%/*} ; then
-                log_must $ZFS destroy -rRf ${newdataset%/*}
+                log_must zfs destroy -rRf ${newdataset%/*}
         fi
 
         # without -p option, operation will fail
-        log_mustnot $ZFS $ops $dataset $newdataset
+        log_mustnot zfs $ops $dataset $newdataset
         log_mustnot datasetexists $newdataset ${newdataset%/*}
 
         # with -p option, operation should succeed
-        log_must $ZFS $ops -p $dataset $newdataset
+        log_must zfs $ops -p $dataset $newdataset
         if ! datasetexists $newdataset ; then
                 log_fail "-p option does not work for $ops"
         fi
 
         # when $ops is create or clone, redo the operation still return zero
         if [[ $ops != "rename" ]]; then
-                log_must $ZFS $ops -p $dataset $newdataset
+                log_must zfs $ops -p $dataset $newdataset
         fi
 
         return 0
 }
 

@@ -2020,16 +2020,16 @@
         typeset alt_root
 
         if ! poolexists "$pool" ; then
                 return 1
         fi
-        alt_root=$($ZPOOL list -H $pool | $AWK '{print $NF}')
+        alt_root=$(zpool list -H $pool | awk '{print $NF}')
         if [[ $alt_root == "-" ]]; then
-                value=$($ZDB -C $pool | $GREP "$config:" | $AWK -F: \
+                value=$(zdb -C $pool | grep "$config:" | awk -F: \
                     '{print $2}')
         else
-                value=$($ZDB -e $pool | $GREP "$config:" | $AWK -F: \
+                value=$(zdb -e $pool | grep "$config:" | awk -F: \
                     '{print $2}')
         fi
         if [[ -n $value ]] ; then
                 value=${value#'}
                 value=${value%'}

@@ -2052,12 +2052,12 @@
 
         typeset str="$@"
         typeset -i ind
         ((ind = RANDOM % cnt + 1))
 
-        typeset ret=$($ECHO "$str" | $CUT -f $ind -d ' ')
-        $ECHO $ret
+        typeset ret=$(echo "$str" | cut -f $ind -d ' ')
+        echo $ret
 }
 
 #
 # Random select one of item from arguments which include NONE string
 #

@@ -2085,18 +2085,18 @@
         typeset dir=/tmp/disk.$$
         typeset pool=foo.$$
         typeset vdev=$dir/a
         typeset sdev=$dir/b
 
-        $MKDIR -p $dir
-        $MKFILE $MINVDEVSIZE $vdev $sdev
+        mkdir -p $dir
+        mkfile $MINVDEVSIZE $vdev $sdev
 
         typeset -i ret=0
-        if ! $ZPOOL create -n $pool $vdev log $sdev > /dev/null 2>&1; then
+        if ! zpool create -n $pool $vdev log $sdev > /dev/null 2>&1; then
                 ret=1
         fi
-        $RM -r $dir
+        rm -r $dir
 
         return $ret
 }
 
 #

@@ -2121,11 +2121,11 @@
                 l_name="${l_name}$basestr"
 
                 ((iter -= 1))
         done
 
-        $ECHO $l_name
+        echo $l_name
 }
 
 #
 # Get cksum tuple of dataset
 # $1 dataset name

@@ -2136,25 +2136,25 @@
 # lzjb LE contiguous unique double size=800L/200P birth=2413856L/2413856P
 # fill=7 cksum=11ce125712:643a9c18ee2:125e25238fca0:254a3f74b59744
 function datasetcksum
 {
         typeset cksum
-        $SYNC
-        cksum=$($ZDB -vvv $1 | $GREP "^Dataset $1 \[" | $GREP "cksum" \
-                | $AWK -F= '{print $7}')
-        $ECHO $cksum
+        sync
+        cksum=$(zdb -vvv $1 | grep "^Dataset $1 \[" | grep "cksum" \
+                | awk -F= '{print $7}')
+        echo $cksum
 }
 
 #
 # Get cksum of file
 # #1 file path
 #
 function checksum
 {
         typeset cksum
-        cksum=$($CKSUM $1 | $AWK '{print $1}')
-        $ECHO $cksum
+        cksum=$(cksum $1 | awk '{print $1}')
+        echo $cksum
 }
 
 #
 # Get the given disk/slice state from the specific field of the pool
 #

@@ -2162,12 +2162,12 @@
 {
         typeset pool=$1
         typeset disk=${2#/dev/dsk/}
         typeset field=${3:-$pool}
 
-        state=$($ZPOOL status -v "$pool" 2>/dev/null | \
-                $NAWK -v device=$disk -v pool=$pool -v field=$field \
+        state=$(zpool status -v "$pool" 2>/dev/null | \
+                nawk -v device=$disk -v pool=$pool -v field=$field \
                 'BEGIN {startconfig=0; startfield=0; }
                 /config:/ {startconfig=1}
                 (startconfig==1) && ($1==field) {startfield=1; next;}
                 (startfield==1) && ($1==device) {print $2; exit;}
                 (startfield==1) &&

@@ -2191,11 +2191,11 @@
 
         #
         #  $ df -n /
         #  /              : ufs
         #
-        $DF -n $dir | $AWK '{print $3}'
+        df -n $dir | awk '{print $3}'
 }
 
 #
 # Given a disk, label it to VTOC regardless what label was on the disk
 # $1 disk

@@ -2205,40 +2205,40 @@
         typeset disk=$1
         if [[ -z $disk ]]; then
                 log_fail "The disk name is unspecified."
         fi
         typeset label_file=/var/tmp/labelvtoc.$$
-        typeset arch=$($UNAME -p)
+        typeset arch=$(uname -p)
 
         if [[ $arch == "i386" ]]; then
-                $ECHO "label" > $label_file
-                $ECHO "0" >> $label_file
-                $ECHO "" >> $label_file
-                $ECHO "q" >> $label_file
-                $ECHO "q" >> $label_file
+                echo "label" > $label_file
+                echo "0" >> $label_file
+                echo "" >> $label_file
+                echo "q" >> $label_file
+                echo "q" >> $label_file
 
-                $FDISK -B $disk >/dev/null 2>&1
+                fdisk -B $disk >/dev/null 2>&1
                 # wait a while for fdisk finishes
-                $SLEEP 60
+                sleep 60
         elif [[ $arch == "sparc" ]]; then
-                $ECHO "label" > $label_file
-                $ECHO "0" >> $label_file
-                $ECHO "" >> $label_file
-                $ECHO "" >> $label_file
-                $ECHO "" >> $label_file
-                $ECHO "q" >> $label_file
+                echo "label" > $label_file
+                echo "0" >> $label_file
+                echo "" >> $label_file
+                echo "" >> $label_file
+                echo "" >> $label_file
+                echo "q" >> $label_file
         else
                 log_fail "unknown arch type"
         fi
 
-        $FORMAT -e -s -d $disk -f $label_file
+        format -e -s -d $disk -f $label_file
         typeset -i ret_val=$?
-        $RM -f $label_file
+        rm -f $label_file
         #
         # wait the format to finish
         #
-        $SLEEP 60
+        sleep 60
         if ((ret_val != 0)); then
                 log_fail "unable to label $disk as VTOC."
         fi
 
         return 0

@@ -2248,11 +2248,11 @@
 # check if the system was installed as zfsroot or not
 # return: 0 ture, otherwise false
 #
 function is_zfsroot
 {
-        $DF -n / | $GREP zfs > /dev/null 2>&1
+        df -n / | grep zfs > /dev/null 2>&1
         return $?
 }
 
 #
 # get the root filesystem name if it's zfsroot system.

@@ -2259,18 +2259,18 @@
 #
 # return: root filesystem name
 function get_rootfs
 {
         typeset rootfs=""
-        rootfs=$($AWK '{if ($2 == "/" && $3 == "zfs") print $1}' \
+        rootfs=$(awk '{if ($2 == "/" && $3 == "zfs") print $1}' \
                 /etc/mnttab)
         if [[ -z "$rootfs" ]]; then
                 log_fail "Can not get rootfs"
         fi
-        $ZFS list $rootfs > /dev/null 2>&1
+        zfs list $rootfs > /dev/null 2>&1
         if (($? == 0)); then
-                $ECHO $rootfs
+                echo $rootfs
         else
                 log_fail "This is not a zfsroot system."
         fi
 }
 

@@ -2281,19 +2281,19 @@
 #
 function get_rootpool
 {
         typeset rootfs=""
         typeset rootpool=""
-        rootfs=$($AWK '{if ($2 == "/" && $3 =="zfs") print $1}' \
+        rootfs=$(awk '{if ($2 == "/" && $3 =="zfs") print $1}' \
                  /etc/mnttab)
         if [[ -z "$rootfs" ]]; then
                 log_fail "Can not get rootpool"
         fi
-        $ZFS list $rootfs > /dev/null 2>&1
+        zfs list $rootfs > /dev/null 2>&1
         if (($? == 0)); then
-                rootpool=`$ECHO $rootfs | awk -F\/ '{print $1}'`
-                $ECHO $rootpool
+                rootpool=`echo $rootfs | awk -F\/ '{print $1}'`
+                echo $rootpool
         else
                 log_fail "This is not a zfsroot system."
         fi
 }
 

@@ -2303,11 +2303,11 @@
 function is_physical_device #device
 {
         typeset device=${1#/dev/dsk/}
         device=${device#/dev/rdsk/}
 
-        $ECHO $device | $EGREP "^c[0-F]+([td][0-F]+)+$" > /dev/null 2>&1
+        echo $device | egrep "^c[0-F]+([td][0-F]+)+$" > /dev/null 2>&1
         return $?
 }
 
 #
 # Get the directory path of given device

@@ -2318,13 +2318,13 @@
 
         if ! $(is_physical_device $device) ; then
                 if [[ $device != "/" ]]; then
                         device=${device%/*}
                 fi
-                $ECHO $device
+                echo $device
         else
-                $ECHO "/dev/dsk"
+                echo "/dev/dsk"
         fi
 }
 
 #
 # Get the package name

@@ -2339,11 +2339,11 @@
 #
 # Get the word numbers from a string separated by white space
 #
 function get_word_count
 {
-        $ECHO $1 | $WC -w
+        echo $1 | wc -w
 }
 
 #
 # To verify if the require numbers of disks is given
 #

@@ -2383,11 +2383,11 @@
 #
 # Check if Trusted Extensions are installed and enabled
 #
 function is_te_enabled
 {
-        $SVCS -H -o state labeld 2>/dev/null | $GREP "enabled"
+        svcs -H -o state labeld 2>/dev/null | grep "enabled"
         if (($? != 0)); then
                 return 1
         else
                 return 0
         fi

@@ -2394,25 +2394,25 @@
 }
 
 # Utility function to determine if a system has multiple cpus.
 function is_mp
 {
-        (($($PSRINFO | $WC -l) > 1))
+        (($(psrinfo | wc -l) > 1))
 }
 
 function get_cpu_freq
 {
-        $PSRINFO -v 0 | $AWK '/processor operates at/ {print $6}'
+        psrinfo -v 0 | awk '/processor operates at/ {print $6}'
 }
 
 # Run the given command as the user provided.
 function user_run
 {
         typeset user=$1
         shift
 
-        eval \$SU \$user -c \"$@\" > /tmp/out 2>/tmp/err
+        eval su \$user -c \"$@\" > /tmp/out 2>/tmp/err
         return $?
 }
 
 #
 # Check if the pool contains the specified vdevs

@@ -2433,18 +2433,18 @@
                 return 2
         fi
 
         shift
 
-        typeset tmpfile=$($MKTEMP)
-        $ZPOOL list -Hv "$pool" >$tmpfile
+        typeset tmpfile=$(mktemp)
+        zpool list -Hv "$pool" >$tmpfile
         for vdev in $@; do
-                $GREP -w ${vdev##*/} $tmpfile >/dev/null 2>&1
+                grep -w ${vdev##*/} $tmpfile >/dev/null 2>&1
                 [[ $? -ne 0 ]] && return 1
         done
 
-        $RM -f $tmpfile
+        rm -f $tmpfile
 
         return 0;
 }
 
 function get_max