1問題:Linux和windows下的回車換行符不兼容的問題
[root@node-01 script]# sh start_zk.sh
art_zk.sh: line 3: syntax error near unexpected token `do
'tart_zk.sh: line 3: `do
2.展示信息:

此處我貼出了源碼;大家可以試一試:
#!/bin/sh
for host in node-01 node-02 node-03
do
ssh $host "source /etc/profile;nohup zkServer.sh > /dev/null 2>&1 &"
echo "$host zk is running"
done
3.解決方案(有兩種):
看似寫的完全沒有問題的邏輯代碼.但是只要運行就會出錯.
本人是在wind本地寫的shell命令,問題主要出在自己在wind上寫的內容,而需要上傳到linux系統上運行就會出現格式問題.
(第一種)(01).是win下的格式圖片:

(02).是linux下的格式圖片:

(03)設置顯示上面那些黑色塊:CRLF和LF
notepad++中首先設置視圖->顯示符號->顯示所有符號,然后就看到了預料到的,所有的回車換行都是windows的CRLF
其次設置:編輯->文檔格式轉換->轉換為UNIX格式
(04)運行成功:

(第二種)解決方案:
這里就不用上面的案例舉例.這是補充方式:
(1)如果在wind上寫好的沒有更改格式,也可以在linux上進行查詢和更改
(2)例如root目錄下有一個 itcast_gdm_user_basic.sh文件
(3)vim itcast_gdm_user_basic.sh
(4)進去以后直接輸入 :set fileformat 回車
如果顯示是fileformat=dos 就說明是wind格式
如果顯示是fileformat=unix 就說明是linux格式
(5)更改格式: 直接輸入 :set fileformat=unix 回車就更該完成
(6)再次確認是否成功,重新執行(4)
