Reset IFS variable

Setting and unsetting the IFS variable is tricky. To be on the
safe side we should always reset the IFS variable to its original
value after parsing.

Signed-off-by: Hannes Reinecke <hare@suse.de>
master
Hannes Reinecke 2014-07-14 10:22:31 +02:00 committed by Daniel Molkentin
parent e5bf1cecd6
commit 8b0791fa01
3 changed files with 12 additions and 2 deletions

View File

@ -1,8 +1,10 @@
#!/bin/sh #!/bin/sh
for dasd_arg in $(getargs rd.dasd= -d rd_DASD= DASD=); do for dasd_arg in $(getargs rd.dasd= -d rd_DASD= DASD=); do
( (
local OLDIFS="$IFS"
IFS="," IFS=","
set -- $dasd_arg set -- $dasd_arg
IFS="$OLDIFS"
echo "$@" | normalize_dasd_arg >> /etc/dasd.conf echo "$@" | normalize_dasd_arg >> /etc/dasd.conf
) )
done done

View File

@ -59,8 +59,10 @@ for dasd_arg in $(getargs root=) $(getargs resume=); do
;; ;;
esac esac
if [ -n "$ccw_arg" ] ; then if [ -n "$ccw_arg" ] ; then
OLDIFS="$IFS"
IFS="-" IFS="-"
set -- $ccw_arg set -- $ccw_arg
IFS="$OLDIFS"
create_udev_rule $2 create_udev_rule $2
fi fi
) )
@ -68,9 +70,10 @@ done


for dasd_arg in $(getargs rd.dasd=); do for dasd_arg in $(getargs rd.dasd=); do
( (
OLDIFS="$IFS"
IFS="," IFS=","
set -- $dasd_arg set -- $dasd_arg
unset IFS IFS="$OLDIFS"
while (($# > 0)); do while (($# > 0)); do
case $1 in case $1 in
autodetect|probeonly) autodetect|probeonly)
@ -78,13 +81,14 @@ for dasd_arg in $(getargs rd.dasd=); do
;; ;;
*-*) *-*)
range=$1 range=$1
OLDIFS="$IFS"
IFS="-" IFS="-"
set -- $range set -- $range
start=${1#0.0.} start=${1#0.0.}
shift shift
end=${1#0.0.} end=${1#0.0.}
shift shift
unset IFS IFS="$OLDIFS"
for dev in $(seq $(( 16#$start )) $(( 16#$end )) ) ; do for dev in $(seq $(( 16#$start )) $(( 16#$end )) ) ; do
create_udev_rule $(printf "0.0.%04x" "$dev") create_udev_rule $(printf "0.0.%04x" "$dev")
done done

View File

@ -55,8 +55,10 @@ fi


for zfcp_arg in $(getargs rd.zfcp); do for zfcp_arg in $(getargs rd.zfcp); do
( (
OLDIFS="$IFS"
IFS="," IFS=","
set $zfcp_arg set $zfcp_arg
IFS="$OLDIFS"
create_udev_rule $1 $2 $3 create_udev_rule $1 $2 $3
) )
done done
@ -72,8 +74,10 @@ for zfcp_arg in $(getargs root=) $(getargs resume=); do
;; ;;
esac esac
if [ -n "$ccw_arg" ] ; then if [ -n "$ccw_arg" ] ; then
OLDIFS="$IFS"
IFS="-" IFS="-"
set -- $ccw_arg set -- $ccw_arg
IFS="$OLDIFS"
_wwpn=${4%:*} _wwpn=${4%:*}
_lun=${4#*:} _lun=${4#*:}
create_udev_rule $2 $wwpn $lun create_udev_rule $2 $wwpn $lun