考虑一个ASCII文本文件(可以说里面含有非shell脚本语言的代码):如何扩展文本文件中的shell变量?
Text_File.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编译的。
您的变量是否在单引号内,如上所示? – Guru
@Guru - 目前,它在文本文件中是单引号或没有周边引号。 –
相关问题:http://superuser.com/q/235738/126693 –