syntax error near unexpected token `do(寫的shell腳本出現格式問題)--->1.問題2.展示信息3.解決方案


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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM