3

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

$SOURCE_CODE_DIR在我的 bashrc 文件中定义了一个全局变量。可以说 $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 变量以便我可以使用它?

4

1 回答 1

4

一种选择是使用eval

while IFS=$'\n' read line
do
  eval echo $line
done < /path/to/external/file/above.txt
于 2013-07-18T12:17:28.067 回答