0

ちょっとした Bash スクリプトを書きましたが、コマンド ラインからの読み込み中に問題が発生しました。Windowsでスクリプトを書いたからだと思います。コードは次のとおりです。

read NEW_MODX_PROJECT

そしてデバッグモードの出力

+ read $'NEW_MODX_PROJECT\r'

最後にここで私が得るエラー

': Ist kein gültiger Bezeichner.DX_PROJECT

英語では、「': は有効な識別子ではありません.DX_PROJECT」という意味になるはずです。

Windowsで書いている間、うまくいきました。sh.exeを使用しているconsole2を使用してテストしました。

4

1 に答える 1

2

あなたの主張は正しいです-WindowsはCRLF行区切りを使用しますが、LinuxはLFのみを使用します。

奇妙なエラー メッセージの理由は、変数の名前を出力するときに、その名前の一部としてキャリッジ リターンが含まれているためです。その後、ターミナルは最初の列に戻って残りのエラー メッセージを出力します (これにより、変数が上書きされます)。メッセージの最初と最後)。

dos2unixととして知られる一連のユーティリティがあり、unix2dosこれらを使用してフォーマットを簡単に変換できます。たとえば、次のようになります。

dos2unix myscript.sh

それらを持っていない場合は、次を使用して同じことを実現できますtr

tr -d '\r' < myscript.sh > myscript-new.sh

どちらもすべての改行を取り除き、混乱を解消するはずです。

于 2013-09-20T00:09:20.593 に答える