1. ホーム
  2. shell

linux shell script cannot be executed, error syntax error near unexpected token `$'\r'' solution.

2022-02-16 16:45:14
<パス

最近、プロジェクトの要件に忙しく、様々な自動インストール用のスクリプトを書いているのですが、たまたま以前のプロジェクトで書かれた要件があり、今はそれを修正するだけでよいのです。

以前のシェルスクリプトは、サーバー上で書かれた後、txtファイルとしてパソコンにコピーされたものでした。それを編集ツールにコピーし、該当する項目を修正したわけです。修正後、サーバーに持ち込んでテストしてみたのですが、sh XXX.shを実行した後にプロンプトが出続けます。

不思議ですね?
viコマンドでスクリプトを開き、確認する
vi XXX.sh

まだ何も問題ない?スクリプトにエラーも何もありませんね?

ふと思ったのですが、スクリプトはtxtファイルから貼り付けているのですが、書式の問題でしょうか?スクリプトがtxtファイルに存在し、それを貼り付けた後、フォーマットの問題があるかもしれません、以前はよくあった問題です
だからこの問題を念頭に置いて探してみてください。この問題を念頭に置いて、もう一度vimコマンドを実行してみましょう。ただし、追加のパラメータは !

vim -b XXX.sh


確かに、コピーした後、どうして各行の後にこの余分な """^M" があるんだ!!!!!?って感じです。
注:viコマンドの使い方や引数の詳細については、基本コマンドシリーズに続きます。

何百行ものコードを手作業で処理するとなると、どれくらいの時間がかかるのでしょうか。日が暮れてしまいますよ?

よし、ここで簡単に処理しよう!

sed -i 's/\r//g' javaInstall.sh


上記のコマンドを実行した後、ファイルに問題がないかどうか確認してみてください