1. 程式人生 > >向shell指令碼中寫內容出現^M字元。

向shell指令碼中寫內容出現^M字元。

問題:
通過java修改tomcat的catlinda.shl指令碼的內容,插入如下語句:

 "if [ \"$1\" = \"start\" -o \"$1\" = \"run\" ]; then

export JAVA_OPTS=\"$JAVA_OPTS -Xbootclasspath/p:${smartagent_home}/plugins/${javaagent}/conf/ -javaagent:${smartagent_home}/plugins/${javaagent}/lib/CAgent-1.0.0.jar=${smartagent_home}/plugins/${javaagent}/\"

fi"

插入完畢,不能正常執行,通過vi檢視,發現每行語句後面都有一個^M.

錯誤分析:原來是在windows下的換行linux是不能識別的,要寫成如下這樣就ok了,注意:不能有換行:

if [ \"$1\" = \"start\" -o \"$1\" = \"run\" ]; then\nexport JAVA_OPTS=\"$JAVA_OPTS -Xbootclasspath/p:${smartagent_home}/plugins/${javaagent}/conf/ -javaagent:${smartagent_home}/plugins/${javaagent}/lib/CAgent-1.0.0.jar=${smartagent_home}/plugins/${javaagent}/\"\nfi\n"