2017-10-16 86 views
0

我想創建一個bash腳本來執行特定的任務,同時檢查一個具有特定名稱的文件。我正在使用UTF-8編碼並運行腳本「bash test.sh」。在Ubuntu機器上。bash腳本,語法錯誤:意外的文件結尾

#!/bin/bash 

echo "Starting..." 
while true 
do 
    echo "In loop..." 
    sleep 2 

    if 
    -e "./droneControl.py" 
    then 
    break 
    fi 
done 

echo "found..." 
+1

你'if'需要在括號:'如果[-e 「./droneControl.py」]'。另外你爲什麼使用循環? – jackarms

+1

您使用「-e」作爲「if」的參數,它是「test」命令的參數。嘗試「如果[[-e ./drone control.py]]」。 –

+0

用四個空格前綴代碼/數據。請看[編輯幫助](http://stackoverflow.com/editing-help)。 – Cyrus

回答

0

您需要使用dos2unix或等效命令轉換腳本。

$ bash fromnotepad.sh 
fromnotepad.sh: line 2: $'\r': command not found 
Starting... 
fromnotepad.sh: line 16: syntax error: unexpected end of file 

$ sed 's/\r$//' fromnotepad.sh > fromunix.sh 

$ bash fromunix.sh 
Starting... 
In loop... 
found... 

腳本:

$ cat fromunix.sh 
#!/bin/bash 

echo "Starting..." 
while true 
do 
    echo "In loop..." 
    sleep 2 

    if [ -e "./ls.txt" ] 
    then 
    break 
    fi 
done 

echo "found..." 
相關問題