Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Print a variable with multi-line value in shell?

In Bash (or other shells) how can I print an environment variable which has a multi-line value?

text='line1
line2'

I know a simple usual echo $text won't work out of the box. Would some $IFS tweak help?

My current workaround is something like ruby -e 'print ENV["text"]'. Can this be done in pure shell? I was wondering if env command would take an unresolved var name but it does not seem to.

like image 678
inger Avatar asked Sep 17 '12 23:09

inger


2 Answers

Same solution as always.

echo "$text"
like image 51
Ignacio Vazquez-Abrams Avatar answered Sep 19 '22 01:09

Ignacio Vazquez-Abrams


export TEST="A\nB\nC"
echo $TEST

gives output:

A\nB\nC

but:

echo -e $TEST
A
B
C

So, the answer seems to be the '-e' parameter to echo, assuming that I understand your question correctly.

like image 20
sirgeorge Avatar answered Sep 20 '22 01:09

sirgeorge