考虑一个 ASCII 文本文件(假设它包含非 shell 脚本语言的代码):
文本文件.msh:
spool on to '$LOG_FILE_PATH/logfile.log';
login 'username' 'password';
....
现在,如果这是一个 shell 脚本,我可以运行它,$ sh Text_File.msh
并且 shell 会自动扩展变量。我想要做的是让 shell 扩展这些变量,然后创建一个新文件,Text_File_expanded.msh
如下所示:
Text_File_expanded.msh:
spool on to '/expanded/path/of/the/log/file/../logfile.log';
login 'username' 'password';
....
考虑:
$ a=123
$ echo "$a"
123
所以从技术上讲,这应该可以解决问题:
$ echo "`cat Text_File.msh`" > Text_File_expanded.msh
...但它没有按预期工作,并且输出文件与源文件相同。
所以我不确定如何实现这一点。我的目标是更容易维护嵌入在我的非 shell 脚本中的目录路径。这些脚本不能包含任何 UNIX 代码,因为它不是由 UNIX shell 编译的。