1. 程式人生 > >syntax error near unexpected token `newline'指令碼無法執行

syntax error near unexpected token `newline'指令碼無法執行

問題描述

執行run.sh指令碼是報錯,報錯資訊如下:

/data/app/information-provider
: No such file or directory
: command not found
./run.sh: line 4: syntax error near unexpected token `newline'
'/run.sh: line 4: `case "$1" in  

問題分析

查詢指令碼,指令碼並沒有問題, 於是懷疑是否檔案格式不正確。
通過下面命令檢視檔案,

cat -A run.sh

發現run.sh中,換行是以^M$結尾

server="$( dirname "
${BASH_SOURCE[0]}" )" && pwd ^M$ cd $server^M$ ^M$ case "$1" in ^M$ ^M$ ...

解決辦法

執行下面語句將run.sh轉換為linux環境下換行符$

dos2unix run.sh

通過cat -A run.sh檢視轉換檔案為:

server="$( dirname "${BASH_SOURCE[0]}" )" && pwd $
cd $server$
$
case "$1" in  $
  $