LINUX.ORG.RU

Прочесть переменную по строкам

 


1

1

В скрипте есть переменная APPVAR, содержащая, например, три строки. Как их вывести по-отдельности на экран? По-отдельности потому, что раскрашивание ломает форматирование и они выводятся все на одной строке.

echo -e "$VAR" | sed -n 1p
echo -e "$VAR" | sed -n 2p
echo -e "$VAR" | sed -n 3p

Вообще, с e и кавычками должно нормально выводить многострочные переменные

derlafff ★★★★★
()
Последнее исправление: derlafff (всего исправлений: 2)
Ответ на: комментарий от derlafff

Сам echo нормально выводит, color ломает строки.

Kindly_Cat
() автор топика

echo «$APPVAR» | while read s; do /usr/local/bin/colorize «$s»; done

AnDoR ★★★★★
()
Ответ на: комментарий от AnDoR

ты бы вчитался в мой пример - там каждая строка - в своей переменной. именно для этого там нет кавычек и есть read.

aol ★★★★★
()
Ответ на: комментарий от AnDoR

я знаю ;) только пост не проапдейтил потом )

aol ★★★★★
()
Ответ на: комментарий от at

Ничего подобного. Не работает:

a="1 2 3 4 5
2 asd r4
3 2
4 a fdas asdf fasd sdf a"

IFS="\n"; for i in $a; do echo ">> $i";  done
>> 1 2 3 4 5
2 asd r4
3 2
4 a fdas asdf fasd sdf a

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

О:

a="1 2 3 4 5
2 asd r4
3 2
4 a fdas asdf fasd sdf a"


S=1; echo $a | while read i; do echo -e "\nLine $S"; S=$((S+1)); N=1; for var in $i; do echo "par $N=$var"; N=$((N+1));  done; done

Line 1
par 1=1
par 2=2
par 3=3
par 4=4
par 5=5

Line 2
par 1=2
par 2=asd
par 3=r4

Line 3
par 1=3
par 2=2

Line 4
par 1=4
par 2=a
par 3=fdas
par 4=asdf
par 5=fasd
par 6=sdf
par 7=a

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Спасибо. Не знал, что это сломали

#! /bin/bash

a="1 123
2 123
3 123"

IFS=$(echo -en "\n\b"); for i in $a; do echo ">> $i"; done
Кому-то захотелось поэкспериментировать с экранированием символов.

at ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.