我正在尝试编写一个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变量,以便我可以使用吗?
答案 0 :(得分:3)
一种选择是使用eval
:
while IFS=$'\n' read line
do
eval echo $line
done < /path/to/external/file/above.txt