Рассмотрим текстовый файл ASCII (предположим, что он содержит код языка без оболочки):
Text_File.msh:
spool on to '$LOG_FILE_PATH/logfile.log';
login 'username' 'password';
....
Теперь, если это была оболочка script, я мог бы запустить ее как $ sh Text_File.msh
, и оболочка автоматически расширила бы переменные.
Я хочу, чтобы оболочка расширила эти переменные, а затем создала новый файл как 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
... но он работает не так, как ожидалось, и выходной файл совпадает с исходным.
Итак, я не уверен, как этого добиться. Моя цель - упростить поддержку путей каталогов, встроенных в мои сценарии без оболочки. Эти сценарии не могут содержать какой-либо UNIX-код, поскольку он не скомпилирован оболочкой UNIX.