【发布时间】:2014-04-22 08:29:01
【问题描述】:
我有一个包含环境变量的文件名列表。我想逐行读取文件,然后为读取的行设置一个变量,但是将环境变量转换为适当的环境变量。到目前为止,这是我的脚本:
#!/bin/ksh
. /test/currentEnv.sh
while read line
do
echo $line
done < $1
如果我的源文件是:
foo1$ENVVAR1.csv
foo2$ENVVAR2.csv
foo3$ENVVAR3.csv
我在 currentEnv.sh 中的环境变量是
$ENVVAR1=hello; export ENVVAR1
$ENVVAR2=world; export ENVVAR2
$ENVVAR3=test; export ENVVAR3
我希望脚本的结果是
foo1hello.csv
foo2world.csv
foo3test.csv
目前它只是转储出原始文件:
foo1$ENVVAR1.csv
foo2$ENVVAR2.csv
foo3$ENVVAR3.csv
编辑
我能够使用以下方法解决我的大部分文件: #!/bin/ksh
. /test/currentEnv.sh
while read line
do
eval echo $line
done < $1
但是我的一些变量位于字符串的中间,例如:
foo3$ENVVAR3_bar.csv
这似乎在寻找一个环境变量 $ENVVAR3_bar 并没有找到它我需要这个来输出:
foo3test_bar.csv
【问题讨论】:
标签: environment-variables output ksh