在Unix中,我有一个文件的内容如下
cat abc
;file1_$HOME;file2_$HOME
我的shell脚本是TRY。内容:
#$HOME is exported and has a value here
echo $HOME
while read line
do
echo $line
done < abc
echo $line prints- ;file1_$HOME;file2_$HOME
但不能替换$HOME
的值如何才能做到这一点?
您需要使用eval
来扩展文件中的变量。
试试这个:
while read line
do
echo "$line"
done < <(eval echo ""$(<abc)"")
您可以使用Perl查找变量名并从环境中替换它们的值:
perl -pe 's/$([[:alpha:]_]w+)/$ENV{$1}/ge' file