Debian - /usr/bin/env: 'php\r': 没有这个文件或目录

4

直接进入问题,当我运行./yii时,似乎我从Docker中运行的Debian:stretch会出现错误。

然而,当我运行/usr/bin/env php -v时,我得到了正确的输出,并且没有任何问题。

似乎有一个问题是换行符被转译成字符串,我不知道如何解决它。

抱歉如果我的英文有点乱,谢谢提前。

请注意:

  • 我一直试图使用nano在Debian中编辑那个文件,但是无用。我仍然得到相同的错误。
  • 我检查了/usr/bin/php内的php文件,同时存在phpphp7.1
  • 我也可以顺利运行php -v
1个回答

7

您需要将文件转换为UNIX的新行约定。

您有一个DOS文件,其中在\n之前有额外的\r字符,这被解释为命令中的一个字符。因此,系统将检查程序php\r而不是php,导致失败。

tr -d '\15' < original_file > converted_file

应该可以做到这个(StackOverflow上还有许多其他方法和技巧)


谢谢。问题已解决。是否有更简单的方法而不是重写每个文件? - Shaf
你应该去谷歌搜索。有很多工具,但这取决于你的系统、偏好等。如果你使用git(或其他代码仓库),它们可以为你翻译文件(双向翻译,所以你不会弄乱其他系统)。FTP和类似的工具也应该能够在复制时转换文件。Linux有各种工具可以在树中转换文件,我只是记不清了,你需要安装相关的软件包。一些编辑器有转换文件的选项(例如在“上传”时)。谷歌会帮助你。 - Giacomo Catenazzi
1
工作正常,但请确保 original_file != converted_file。 - The Onin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接