While in a Linux shell I have a string which has the following contents:
cat
dog
bird
and I want to pass each item as an argument to another fu
Use this (it is loop of reading each line from file file)
cat file | while read -r a; do echo $a; done
where the echo $a is whatever you want to do with current line.
UPDATE: from commentators (thanks!)
If you have no file with multiple lines, but have a variable with multiple lines, use
echo "$variable" | while read -r a; do echo $a; done
UPDATE2: "read -r" is recommended to disable backslashed (\) chars interpretation (check mtraceur comments; supported in most shells). It is documented in POSIX 1003.1-2008 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/read.html
By default, unless the -r option is specified,
shall act as an escape character. .. The following option is supported:-r- Do not treat acharacter in any special way. Consider each to be part of the input line.