Hello,
From a source of mine: local / typeset = variables declared with local are in scope for the current shell. The typeset built-in command can also be used to declare variables. export = global variables, called also environment variables, are set for the currently running shell and any process spawned from that shell. By *the local boat* should be: local mypath="/home" local myfile="file.txt" local line="" local arg local y=0 y=0 arg[$y]="hello" y=$y+1 arg[$y]="dan" y=$y+1 arg[$y]="nuggetsman" #debug echo ${arg[0]} echo ${arg[1]} echo ${arg[2]} y=0 cat $mypath'/'$myfile | while read -r line do #debug echo "y="$y echo "line="$line arg[$y]=$line #debug echo "arg[y]="${arg[$y]} y=$y+1 done #debug echo ${arg[0]} echo ${arg[1]} echo ${arg[2]} exit 1 By *the export boat* should be: local mypath="/home" local myfile="file.txt" export arg1="hello" export arg2="dan" export arg3="nuggetsman" export line="" export y=0 #debug echo $arg1 echo $arg2 echo $arg3 y=0 cat $mypath'/'$myfile | while read -r line do #debug echo "y="$y echo "line="$line case $y in 0 ) export arg1=$line #debug echo "arg1="$arg1 ;; 1 ) export arg2=$line #debug echo "arg2="$arg2 ;; 2 ) export arg3=$line #debug echo "arg3="$arg3 ;; esac y=$y+1 done #debug echo $arg1 echo $arg2 echo $arg3 exit 1 The final result is always: hello dan nuggetsman Can't solve the quiz, any hint? Dan ------ Blog: https://bsd.gaoxio.com - Repo: https://code.5mode.com Please reply to the mailing-list, leveraging technical stuff.