ASCII テキスト ファイルを考えてみましょう (非シェル スクリプト言語のコードが含まれているとします)。
Text_File.msh:
spool on to '$LOG_FILE_PATH/logfile.log';
login 'username' 'password';
....
これがシェル スクリプトの場合は、次のように実行でき$ 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
...しかし、期待どおりに機能せず、出力ファイル while はソースと同じです。
したがって、これを達成する方法がわかりません..私の目標は、非シェルスクリプトに埋め込まれたディレクトリパスを簡単に維持できるようにすることです。これらのスクリプトは UNIX シェルによってコンパイルされないため、UNIX コードを含めることはできません。