在寫腳本的時候常常出現一種狀況就是,在windows下寫,寫完以後拷進去執行,但是考進去卻發現報錯,而錯誤卻又很奇葩,例如個人for循環語句出現syntax error near unexpected token do錯誤,仔細看了幾遍本身寫的shell腳本,發現並無錯誤,最後想到可能就是換行符linux
這種狀況發生的緣由是由於你所處理的文件換行符是dos格式的」\r\n」
可使用cat -v 文件名 來查看換行符是不是,若是是上述的,則行結尾會是^m
須要轉換成linux/unix格式的」\n」
具體轉換辦法就是轉換換行符
能夠用sed命令處理一下文件,命令以下:
sed ‘s/\r//g’ 原文件 >轉換後文件
sed 命令的參數中 」表明決定引用參數,不容許參數中的值讓shell解釋,s表明替換 /後面跟的是被替換的內容,後面的//表明替換後的內容爲空
推薦使用EditPlus或者UltraEdit,使用這些文本編輯工具,在保存時,能夠選擇保存的文字編碼類型,好比選擇UNIX格式換行符。我比較喜歡EditPlus的join lines功能,把多行的值變成一個邏輯行,便於寫到shell腳本中做爲循環的變量shell