I'm having trouble setting variables using the 'read' command in bash. All of the following lines fail to set $var and return a blank line. - echo "text" | read var ; echo $var - cat file | read var ; echo $var - read var < file | echo $var
I can get it work by explicitly declaring the file descriptor with the file redirection, but I'd prefer to use a pipe. - read -u 0 var <file ; echo $var Another related quirk, is that variables set within 'while read' loops lose their values once the loop ends. The following example displays "text text" within the loop and blank line outside. - echo "text" |\ while read do foo=$REPLY ; bar="text" echo $foo $bar done echo $foo $bar Is this a feature of bash or a bug? If it is a feature is there a workaround? My setup is Cygwin 1.5.9-1 and Bash 2.05b-16 under Windows XP Pro 5.1 SP1 Thanks, Kevan ________________________________________________________________________ This e-mail has been scanned for all viruses by Star Internet. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________ -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/