Wie Sie shell-Variablen in eine text-Datei?

Betrachten Sie einen ASCII-text-Datei (sagen wir, enthält es code von einer nicht-shell-scripting-Sprache):

Text_File.msh:

spool on to '$LOG_FILE_PATH/logfile.log';
login 'username' 'password';
....

Nun, wenn dies ein shell-Skript konnte ich es als $ sh Text_File.msh und die shell automatisch erweitern Sie die Variablen.
Was ich tun möchte, ist über die shell erweitern Sie diese Variablen und erstellen Sie eine neue Datei als Text_File_expanded.msh wie folgt:

Text_File_expanded.msh:

spool on to '/expanded/path/of/the/log/file/../logfile.log';
login 'username' 'password';
....

Betrachten:

$ a=123
$ echo "$a"
123

Technisch gesehen, dies sollte den trick tun:

$ echo "`cat Text_File.msh`" > Text_File_expanded.msh

...aber es funktioniert nicht wie erwartet, und die Ausgabe-Datei, während die identisch ist mit der Quelle.

So, ich bin nicht sicher, wie das zu erreichen ist.. Mein Ziel ist, machen es leichter zu pflegen, die Verzeichnis-Pfade eingebettet in meine nicht-shell-Scripte. Diese Skripts enthalten, nicht UNIX-code, da es nicht kompiliert werden von der UNIX-shell.

Werden Variablen innerhalb von einfachen Anführungszeichen, wie oben gezeigt?
Derzeit ist es in einfache Anführungszeichen oder ohne umgebende Anführungszeichen an alle in der text-Datei.
Verwandte Frage: superuser.com/q/235738/126693

InformationsquelleAutor Kent Pawar | 2013-01-21

Schreibe einen Kommentar