Ha muszáj a pipe, akkor úgy hozok ki belőle változót, hogy a pipe-on belül stdout-ra küldöm a cuccot, s az egész kócerájt egy helyettesítésként változó értékadásába írom valahogy emígyen:
#!/bin/bash
eval "a=(`ls -l |\
while read; do
echo \"'$REPLY' \"
done`)"
echo "${a[5]}"
exit 0
Tudom, rondácska egy értékadás, ugyanakkor egyből egy tömböt definiál, így sok változót ki lehet így hozni. Valami ilyesmi lesz belőle:
a=('érték0' 'érték1' 'érték2' 'érték3' 'érték4' 'érték5' )
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE