LINUX.ORG.RU

Пятничная разминка для мозгов

 ,


0

1

Салют. Чё-то не совладаю. Хочу в переменные поместить вывод фунцкции. К примеру:

pstr() {
[[ $1 -eq 1 ]] && echo "многострочный текст"
[[ $1 -eq 2 ]] && echo "другой текст"
}
export -f pstr #без экспорта parallel функцию не узнаёт
хотел так
read -r text1 text2 < <(parallel pstr ::: 1 2)
echo $text1 --> многострочный
echo $text2 --> текст
####
read -r -d 'END' text1 text2 < <(parallel pstr ::: 1 2)
echo $text1 --> многострочный
echo $text2 --> текст другой текст
в общем хз, есть какие мысли?

IFS= read -r text1 text2 < <(parallel pstr ::: 1 2)
printf '<%s>\n' "$text1" "$text2"
<многострочный текст>
<>

RTFM man bash, read читает одну строку.

А впрочем, его можно обмануть:

IFS=$'\n' read -r -d '' text1 text2 < <(parallel pstr ::: 1 2)

Про IFS рассказано в главе Word Splitting, которую ты конечно же читал, но в связи с пятницей не воспринял.

legolegs ★★★★★ ()
Последнее исправление: legolegs (всего исправлений: 1)