From: John Reiser Date: Fri, 23 Sep 2011 15:02:23 +0000 (-0700) Subject: dracut [PATCH] Parameter expansion occurs before command evaluation. X-Git-Tag: 014~78 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9e103df45e4ca2c2392cedf3c9ecb84713962838;p=thirdparty%2Fdracut.git dracut [PATCH] Parameter expansion occurs before command evaluation. Bash shell expands all ${parameter} before evaluating a command. For multiple declarations and assignments within the same 'local' command, then new variables or new values that appear towards the left do not affect parameter expansion towards the right. -- John Reiser, jreiser@BitWagon.com >From 507ad6f66fc66f868a9e5fdd3806e012c4022baa Mon Sep 17 00:00:00 2001 From: John Reiser Date: Fri, 23 Sep 2011 07:37:43 -0700 Subject: [PATCH] Parameter expansion occurs before command evaluation. ${parameter} on the right is expanded before evaluating "local var=value" on the left. --- diff --git a/dracut-functions b/dracut-functions index 550880975..c4f7f6158 100755 --- a/dracut-functions +++ b/dracut-functions @@ -272,7 +272,7 @@ check_vol_slaves() { inst_dir() { [[ -e ${initdir}"$1" ]] && return 0 # already there - local _dir="$1" _part=${_dir%/*} _file + local _dir="$1" _part="${1%/*}" _file while [[ "$_part" != "${_part%/*}" ]] && ! [[ -e "${initdir}${_part}" ]]; do _dir="$_part $_dir" _part=${_part%/*}