私のラップトップ(DOS)でCygwinを使用しています。私は同僚と私自身からシナリオを集めました。私はITの専門家ではなく、Unixを理解していません。私は同僚の文法に従い、いくつかの簡単なことを処理できます。
このスクリプトは私の古いラップトップでうまく動作します。先ほどノートパソコンを変更してCygwinをインストールしました。スクリプトを実行しても機能しません。以下は、私が受け取ったエラーメッセージの例です。
line 1: $':\r': command not found
line 5: syntax error near unexpected token `$'\r''
line 5: `fi
私のスクリプトの最初の5行は次のとおりです。
:
iter=1
if [ -f iter.txt ]
then rm ./iter.txt
fi
誰かがこの問題を解決する方法を説明できますか?
ベストアンサー1
Windowsスタイルの行末があります。
対照的に、ランダムなコマンドは:
で読み取られ、:<carriage return>
でマークされる、またはより:\r
完全にマークされます$':\r'
。
ただ走ればdos2unix scriptname
大丈夫でしょう。
その項目がない場合は、dos2unix
次のことが機能します。ほぼどこでも(WindowsのMobaXtermでテストしました):
vi -b filename
次に、vi
次のように入力します。
:%s/\r$//
:x
今行ってもいいです。
vim
Cygwinで使用されているCygwinでは、vi
これを行うにはいくつかの方法があります。もう1つはfileformat
値を取ることができる設定に関連していますdos
。unix
ファイルをロードした後に明示的に変更
ファイル形式の設定= Unixまたは、ファイルを書き込むときに明示的にファイル形式を強制します。
:w +ファイル形式= Unix
詳細については、次のようなトピックをカバーする多くの質問と回答をご覧ください。