Como executar o shell script do PHP com extensão não padrão?

0

Eu tenho o Windows com integração de shell instalado pelo Git (assim como o Cygwin) e o seguinte código PHP falha ao executar o script de shell externo que possui .launcher extension:

<?php
  passthru("foo.sh");
  passthru("foo.launcher");
?>

Meus dois foo.sh e foo.launcher se parecem com:

#!/usr/bin/env sh
echo Works!

Quando executo meu script PHP, o .sh é executado, no entanto .launcher não funciona, pois mostra o erro:

Windows can't open this file: File: foo.launcher

To open this file, Windows needs to know what program you want to use it to open.

Como solução alternativa, provavelmente poderia alterar a associação de arquivos, mas acho que ela está bloqueada pela política da empresa (no entanto, ainda tenho acesso ao registro). Então eu prefiro alguma solução que eu possa usar do ponto de vista do PHP, se houver alguma.

    
por kenorb 09.11.2015 / 16:14

1 resposta

2

Você também pode escrever um script wrapper para contornar este problema

#!/usr/bin/env sh
foo.launcher

e, em seguida, executar esse script de dentro do php. Isso evitaria alterações no registro e violações da política da empresa.

    
por 09.11.2015 / 16:42