Bourne variable unset outside while()
Rick Miller
vmiller at hostileadmin.com
Thu May 8 18:48:23 UTC 2014
Hi all,
I have a Bourne shell script that echoes the contents of a data structure
to a while() loop that iterates over the data and is expected to append a
string from the current iteration to a different list. Inside the while(),
it works fine, but echo'ing the list outside the loop produces empty
output. I expect the variable to maintain it's final state after
processing the while(), but it does not appear to be doing so.
/** The script **/
#! /bin/sh -x
fs="freebsd-ufs gprootfs 1G
freebsd-swap gpswapfs 1G
freebsd-ufs gpvarfs 1G";
echo "${fs}" |
while read -r fstype fslabel fssize; do
labels="${labels} ${fslabel}";
echo "${labels}";
done
echo -e "\nlabels = ${labels}";
/** End the script **/
The output from this script is at http://pastebin.com/mxNLLWtm
This almost appears to be an issue with scope, but I've not encountered
this before, especially in such simple context. I must be missing
something obvious and just looking for feedback to send me off in the right
direction.
--
Take care
Rick Miller
More information about the freebsd-questions
mailing list