inger
inger

Reputation: 20184

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.

Upvotes: 23

Views: 30010

Answers (2)

sirgeorge
sirgeorge

Reputation: 6531

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.

Upvotes: 5

Ignacio Vazquez-Abrams
Ignacio Vazquez-Abrams

Reputation: 798676

Same solution as always.

echo "$text"

Upvotes: 53

Related Questions