web-dev-qa-db-ja.com

予期しないトークン「$」in \ r付近の構文エラー

NIST Biometric Image Softwareをコンパイルしようとしていますが、1日中問題があります。私は最終的にソースを正しくチェックアウトし、cygwinを問題なくインストールしました(過去に使用しました)が、コンパイルに行ったときにこのエラーが発生します:

 $  sh setup.sh </cygdrive/c/NBIS> [--without-X11]
 setup.sh: line 94: syntax error near unexpected token `$'in\r''
 'etup.sh: line 94: `    case $1 in

今、私は高度なコーダーがsetup.shに向かって問題を探すことを確信していますが、私は実際にはあまりコーダーではありません(プリコンパイルされたパッケージがないため、これをコンパイルしているだけです) t何をすべきかを知っています。 cygwinでライブラリをインストールせず、すべてをデフォルトのままにしました。私はNBISのマニュアルに従うことを試みていますが、私はそれを本当によく理解していないので、ひどく苦労しています。それを見てみると、私が見逃した何かに気付くかもしれません: http://www.nist.gov/customcf/get_pdf.cfm?pub_id=51097

37
David

変換する setup.sh CygwinのUnix行末に、使用

dos2unix setup.sh
50
Jens

走る

sed -i 's/\r//' setup.sh

行末を修正する

33
Frank Hayward

Example.shファイルをUNIXに変換する簡単な方法は、NotePad ++を使用することです(編集> EOL変換> UNIX/OSX形式)

Notepad ++でデフォルトのEOLを設定することもできます([設定]> [設定]> [新規ドキュメント/デフォルトディレクトリ]> [フォーマット]ボックスでUnix/OSXを選択)

15
Eftekhari

Windowsは2文字(CRおよびLF、または\r\n)テキストファイルの行の終わりをマークします。 Unix、Linux、および(デフォルトで)Cygwinは単一のLFまたは '\ n'文字を使用します。一部のCygwinツールはどちらの形式にも対応できますが、shは通常できません。

setup.shはWindowsスタイルの行末記号を使用します-または少なくとも94行目は使用します。

ソースのダウンロードが見つかりませんでしたが、Zipファイルとして配布されている場合は、Cygwin unzipコマンドと-aオプション。したがって、行末は自動的に変換されます。

しかし、それだけではありません。配布されたsetup.shファイルには、そもそもWindowsスタイルの行末が含まれていてはなりません。もしあったとしても、94行目まで問題が発生しない理由はわかりません。

ソースのダウンロード用のURLを投稿できる場合は、setup.exe

7
Keith Thompson