考慮一個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 –