I want to read a file and save it in variable, but I need to keep the variable and not just print out the file.
How can I do this? I have written this script but it isn't quite what I needed:
#!/bin/sh
while read LINE
do
echo $LINE
done <$1
echo 11111-----------
echo $LINE
In my script, I can give the file name as a parameter, so, if the file contains "aaaa", for example, it would print out this:
aaaa
11111-----
But this just prints out the file onto the screen, and I want to save it into a variable!
Is there an easy way to do this?
Best Answer
In cross-platform, lowest-common-denominator
sh
you use:In
bash
orzsh
, to read a whole file into a variable without invokingcat
:Invoking
cat
inbash
orzsh
to slurp a file would be considered a Useless Use of Cat.Note that it is not necessary to quote the command substitution to preserve newlines.
See: Bash Hacker's Wiki - Command substitution - Specialities.