从php执行shell脚本将在Windows上打开文件(Xampp)

从php执行shell脚本将在Windows上打开文件(Xampp),php,bash,shell,laravel,xampp,Php,Bash,Shell,Laravel,Xampp,我正在尝试从我的PHP文件运行脚本。当我运行脚本时,它只是打开我的记事本,而不是执行文件。 我已授予文件夹读写权限,尝试通过SSH(因为我使用Vagrant)和cmd运行。但似乎什么都不管用。我认为我的代码是正确的,您可以在下面找到: $output = shell_exec(getcwd()."/scripts/row.sh 2>&1"); 有人能帮我吗?这是因为您的用打开.sh文件设置为记事本 检查以下输出: my_prompt> assoc .sh .sh=sh_au


我正在尝试从我的PHP文件运行脚本。当我运行脚本时,它只是打开我的记事本,而不是执行文件。
我已授予文件夹读写权限,尝试通过SSH(因为我使用Vagrant)和cmd运行。但似乎什么都不管用。我认为我的代码是正确的,您可以在下面找到:

$output = shell_exec(getcwd()."/scripts/row.sh 2>&1");

有人能帮我吗?

这是因为您的
打开
.sh
文件设置为
记事本

检查以下输出:

my_prompt> assoc .sh
.sh=sh_auto_file
    ^ ^ ^ ^ ^ ^ ^ <~~~~~~ Remember this name

my_prompt> ftype sh_auto_file <~~~~~~~~~~Use it here
sh_auto_file=%SystemRoot%\system32\NOTEPAD.EXE %1
(根据您的设置更改bash.exe的路径…)

有关详细信息,请在
cmd.exe
上运行命令
assoc/?
ftype/?
。(
/?
是Linux命令中
-h
-help
的典型等价物…)

此外,对于更高级的用户,请在注册表中查看
HKCR\.sh
HKCR\sh_auto_文件

您可以使用
regedit

我几乎没有使用MS Windows的经验,但是您确定可以在该系统下使用unix典型的
2>&1
?也可能值得探索在系统中注册了什么“默认应用程序”来处理“*.sh”文件。是的,我认为是这样。上次我检查时,
2>&1
似乎工作正常。如果没有
2>&1
,它也会打开一个记事本。我将看一看windows.sh处理程序
2>&1
在windows(cmd)和linux(*sh)下工作。你让我走对了路。还在努力让它工作,但现在我知道该去哪里找了!
my_prompt> ftype sh_auto_file=c:\cygwin\bin\bash.exe %1 %*