1. ホーム
  2. Server

予期しないトークン「改行」付近の構文エラー スクリプトが実行できない

2022-02-16 16:51:12
<パス

問題の説明

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 $
  $