Bourne variable unset outside while()

Ivailo A. Tanusheff ITanusheff at postbank.bg
Fri May 9 06:43:56 UTC 2014


Hi,

I think you can check out this:
http://stackoverflow.com/questions/7482510/variable-incrementing-in-bash

So I sugest you do the same trick or use different approach - awk or something like this.

Regards,

Ivailo Tanusheff

-----Original Message-----
From: owner-freebsd-questions at freebsd.org [mailto:owner-freebsd-questions at freebsd.org] On Behalf Of Rick Miller
Sent: Thursday, May 08, 2014 9:48 PM
To: FreeBSD Questions
Subject: Bourne variable unset outside while()

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
_______________________________________________
freebsd-questions at freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"


Disclaimer:

This communication is confidential. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or taking any action in reliance on the contents of this information is strictly prohibited and may be unlawful. If you have received this communication by mistake, please notify us immediately by responding to this email and then delete it from your system.
Eurobank Bulgaria AD is not responsible for, nor endorses, any opinion, recommendation, conclusion, solicitation, offer or agreement or any information contained in this communication.
Eurobank Bulgaria AD cannot accept any responsibility for the accuracy or completeness of this message as it has been transmitted over a public network. If you suspect that the message may have been intercepted or amended, please call the sender.


More information about the freebsd-questions mailing list