Интересно, как правильно использовать здесь-строку (здесь-документ) и канал.
Например,
a='a,b,c,d'
echo $a | IFS=',' read -ra x
IFS=',' read -ra x <<< $a
Оба метода работают. Тогда в чем будет разница между двумя функциями?
Другая проблема, связанная с «чтением», заключается в том, что:
IFS=',' read x1 x2 x3 x4 <<< $a
не работает, x1 оценивается как "a b c d", а x2, x3, x4 не имеет значения
но если:
IFS=',' read x1 x2 x3 x4 <<< "$a"
Я могу получить x1=a, x2=b, x3=c, x4=d Все в порядке!
Кто-нибудь может это объяснить?
заранее спасибо