迭代文件中的行并展开全局变量

时间:2013-07-18 12:10:27

标签: bash

我正在尝试编写一个bash脚本,它将迭代文件中的行并同时解释全局变量。

我的bashrc文件中定义了一个全局变量$SOURCE_CODE_DIR。让我们说 $SOURCE_CODE_DIR == / path / to / source /

我的外部文件如下所示:

$SOURCE_CODE_DIR/some/dir/file.txt
$SOURCE_CODE_DIR/some/dir/file.cpp
到目前为止

和我的bash脚本是:

while IFS=$'\n' read line
do
  echo $line
done < /path/to/external/file/above.txt

变量$ SOURCE_CODE_DIR正在脚本的其他位置使用,因此可以正确访问和定义;

此脚本的输出是

$SOURCE_CODE_DIR/some/dir/file.txt
$SOURCE_CODE_DIR/some/dir/file.cpp

而不是

/path/to/source/some/dir/file.txt
/path/to/source/some/dir/file.cpp

任何人都可以帮我扩展$ SOURCE_CODE_DIR变量,以便我可以使用吗?

1 个答案:

答案 0 :(得分:3)

一种选择是使用eval

while IFS=$'\n' read line
do
  eval echo $line
done < /path/to/external/file/above.txt