1

多数のシェル スクリプトを含むフォルダーを unix に配信します。

<scp todir="${user.id}:${user.pwd}@${host.name}:${destination}" verbose="true" port="${host.port}" trust="true" failonerror="true">
        <fileset dir="${source.dir}">
            <include name="**" />
            <exclude name=".project"/>
            <exclude name=".svn"/>
            <exclude name="temp"/>
            <exclude name="jsch_build.xml"/>
        </fileset>
    </scp>

その後、エラー応答が返されました

:/bin/sh^M: インタープリターが正しくありません: そのようなファイルまたはディレクトリはありません。

これはコード形式が原因であることを知っています。1 つの解決策は ff=unix に設定されていますが、これらのスクリプトを 1 つずつ処理する必要があります。また、UNIXマシンにdos2unixがインストールされていません。

この問題の解決を手伝ってくれる人はいますか?ありがとう!

4

1 に答える 1

0

ファイルをリモートの場所にコピーする前にファイルを修正するために使用できるANT fixclrlfタスクがあります。

これをfilterchainの一部として使用することもできます。

<copy todir="${staging.dir}">
  <fileset dir="${source.dir}">
    <include name="**" />
    <exclude name=".project"/>
    <exclude name=".svn"/>
    <exclude name="temp"/>
    <exclude name="jsch_build.xml"/>
  </fileset>
  <filterchain>
    <fixcrlf eol="lf" eof="remove"/>
  </filterchain>
</copy>

<scp todir="${user.id}:${user.pwd}@${host.name}:${destination}" verbose="true" port="${host.port}" trust="true" failonerror="true">
  <fileset dir="${staging.dir}"/>
</scp>
于 2013-09-13T05:35:18.690 に答える