-ksh:revenue_ext.ksh:找不到

-ksh:revenue_ext.ksh:找不到

not found [No such file or directory]尝试执行 ksh 脚本时出现同样的错误。阅读有关 PATH 的提示并使用./帖子中的a 运行脚本这里这里并尝试过但没有运气。该脚本确实存在于我尝试执行的目录下,并且具有完全权限,但在直接运行或使用./.脚本中的第一行还有#!/usr/bin/ksh

错误信息如下:

-ksh: revenue_ext.ksh: not found [No such file or directory]

但是,ksh同一目录下的其他脚本运行良好,因此我完全不知道这里可能出了什么问题。任何帮助将不胜感激

答案1

我相信可能有一些回车导致这个错误这里。我能够成功地重现该错误。

测试

cat ksh_experiment.ksh

#!/usr/bin/ksh
echo "Hello"

现在,在我运行文件时提供权限后,它成功生成了输出。现在正如所讨论的这里,我在文件中插入了一些回车符。现在,当我运行脚本时,我得到的输出为,

ksh: ./ksh_experiment.ksh: not found [No such file or directory]

现在,cat -v ksh_experiment.ksh也产生了相同的输出。另外,如果我输入vim ksh_experiment.ksh,则会打开一个新文件。

正如我提供的链接的答案中所讨论的,我使用以下命令删除了回车符,

 perl -p -i -e "s/\r//g" ksh_experiment.ksh

当我运行时修复后,我得到了预期的输出。

答案2

就我而言,如果文件是以下任一情况,我都会出现相同的错误消息.ksh或者.sh像这样:

-ksh: ./somefile.sh: not found [No such file or directory]

原来是访问问题。

即使您使该文件可执行,在服务器上您可能需要管理员权限才能运行。我可以运行命令行,但执行脚本将返回未找到,请尝试在中运行脚本须藤,然后您就会知道是否允许您以 root 身份运行该脚本。

答案3

这是由于^M角色而发生的。

尝试使用一下dos2unix <File_name>,我们应该可以得到预期的结果。

相关内容