答案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>
,我们应该可以得到预期的结果。