2015-07-11 67 views
-1

我写了一个PHP脚本“toalpha”(目的与此问题无关)。该脚本位于$ HOME/bin中。如果我的CWD是$ HOME/bin,我可以通过键入“./toalpha”来执行它。但是,如果我只需键入“toalpha”,我得到一个消息: 无法打开输入文件:/ C /巴里/斌/ toalphacygwin:无法通过PATH执行PHP脚本

有些信息可能是相关的:

。我最近将我的桌面从WinXP升级到了Win7。

。这是我第一次将自己的用户名改为普通用户而不是管理员。 (我试图在XP上做到这一点,但遇到问题,并回到我的正常用户名为管理员。不需要解决方案,因为我不再运行XP,除此之外,这是我自己的错。)

。我的$ HOME is/c/barry 我这样做是通过将以下内容添加到我在安装cygwin时创建的.bashrc中: mount C:/ c HOME =/c/barry cd 。 .bashrc

。 PHP脚本的前两行是:

#!/c/xampp/php/php 
<?php 

。是的,我想要使用的PHP的副本是在C:\ xampp \ php \ php.exe

。我有另一个我在WinXP上编写的类似脚本。它始于相同的两行。它在XP下运行良好,但不适用于Win7。

我的问题的根源最好的猜测:

  1. XP和Win7

  2. 之间的区别我摸索着以某种方式的主目录的变化。 IIRC,当我在XP上安装Cygwin时,我做了一些欺骗,所以它会直接在C:\ barry中启动,但我不记得在Win7上安装它时我是如何做到的,所以我选择了“简单的方法”。

回答

-1

庆典被传递到 “C:\ XAMPP \ PHP \ php.exe的”
文件名 “/ C /巴里/斌/ toalpha”
但是这是一个cygwin路径和你的PHP不不认识它。

你应该把它转换使用 cygpath可以理解的一个

尝试 /C/XAMPP/PHP/PHP的$(cygpath -w/C /巴里/斌/ toalpha)

+0

我不得不实际在那里粘贴路径名,即C:\ barry \ bin \ toalpha 而不是$(cygpath -w/c/barry/bin/toalpha)。处理#的代码!脚本希望在那里看到一个文字路径,而不是需要由shell评估的构造。 但是,谢谢你,通过应用你的建议(作为修改),我现在有一个脚本,我可以在任何地方执行。 –