原因:
-
因爲你所處理的文件換行符是dos格式的”\r\n” ;
-
可以使用cat -v 文件名 來查看換行符是否是,如果是上述的,則行結尾會是^m 需要轉換成linux/unix格式的”\n”;
-
具體轉換辦法就是轉換換行符 。
可以用sed命令處理一下文件,命令如下:
-
sed ‘s/\r//’ 原文件 >轉換後文件 ;
-
sed 命令的參數中 ”代表決定引用參數,不允許參數中的值讓shell解釋,s代表替換 /後面跟的是被替換的內容,後面的//代表替換後的內容爲空 ;
-
推薦使用EditPlus或者UltraEdit,使用這些文本編輯工具,在保存時,可以選擇保存的文字編碼類型,比如選擇UNIX格式換行符;
-
我比較喜歡EditPlus的join lines功能,把多行的值變成一個邏輯行,便於寫到shell腳本中作爲循環的變量。
sed 's/\r//' xxx.sh > xxx.sh