前次是移植Redhat遇到\r來搗亂,此次編寫Linux腳本又遇到字符0D來惹麻煩。windows
這個腳本是從網上一個參考案例中複製過來,想省點事,結果比本身敲10遍還費事。bash
很簡單的命令:ide
# /bin/bashunix
DB_USER="root"
echo $DB_USERget
DB_USER1=$DB_USER""==it
echo $DB_USERclass
結果輸出是:變量
root方法
==ot腳本
查了好一陣,才發現Linux中每行結束只有0A,而網上覆制過來後,在windows系統中會變成0D 0A,多出來的0D會附加在變量上,因爲不可見,所以被我忽略。可是0D被Linux系統解釋爲回到行頭,因而就從新輸出,替代了原來的字符。
怎麼辦呢?只好多長一個心眼,在Linux下手工敲賦值語句了。另一個方法是安裝dos2unix,將windows下編輯的文本中0D 0A改成0A。
安裝dos2unix的命令:sudo apt-get install dos2unix
而後,dos2unix 腳本名稱