FND-CP-ESP:子:exec ::没有这样的文件或目录错误:没有dos2unix解决这个问题

时间:2016-10-31 07:45:31

标签: shell unix

我正在使用SSH Tectia客户端。

我使用以下命令在shell脚本命令上创建了一个符号链接:

ln -s $FND_TOP/bin/fndcpesr  /app/gl/PROD/prod/per/12.0.0/bin/MOVEFILE

虽然这会创建一个符号链接。

I am getting a Error: FND-CP-ESP: Child: exec:: No such file or directory error

我知道dos2unix可以解决此错误。但是这个命令在SSH Tectia中不起作用。是否还有其他cmmand将shell脚本转换为unix?

3 个答案:

答案 0 :(得分:0)

您可以下载该工具并手动使用(无需安装)。去: http://waterlan.home.xs4all.nl/dos2unix.html#DOS2UNIX 并下载二进制文件,甚至更好的源代码(编译和运行)。

答案 1 :(得分:0)

如果您在Windows中编辑脚本并使用某些FTP工具以错误的传输类型(在这种情况下应为ASCII)传输它,则可能会发生此问题。如果您使用的是Filezilla,则可以转到“传输”>“传输类型”并在传输前选择ASCII

答案 2 :(得分:0)

你是对的。这是由于文件被转换为DOS文件格式而发生的。 Unix仅使用换行(LF),而DOS使用回车(CR)和换行(LF)作为终止字符。

此CR在Unix / Linux中变为CtrlM。因此,当您尝试执行shell脚本时,会出现此错误。

避免这种情况的最佳方法是将文件从Windows移至Unix系统。确保使用FTP ASCII模式移动它。这样可以确保根据操作系统自动转换文件。

据我了解您没有此命令,因此请按照以下方法删除此命令。

  1. 在二进制模式下使用vi编辑器,并使用以下命令查找并替换此字符。

    %s / ^ M // g

  2. sed命令

    sed -e“ s / ^ M // g”源文件>目标文件

  3. 使用Perl

    $ perl -pe's / ^ M // g'源文件>目标文件

  4. 使用tr

    tr -d'\ r'<源文件> dest_file

我建议您参考下面的文章

How to find and remove ^M character from Unix/Linux text file