Interpretted Scripts:Implícito vs Explícita de Execução
-
16-09-2020 - |
Pergunta
No este superusuário pergunta Eu estava avisado que é melhor para executar scripts escritos em uma interpretted linguagem (php, python, etc) explicitamente executar o interpretter e fornecer o script como um argumento, como:
> php script.php
em vez de adicionar uma linha para o script para dizer ao sistema operacional para executar, como:
#!/usr/bin/php
<?php
echo "hello world";
?>
Por que isto é verdade?Minha intuição me diz que é mais seguro, no caso, o script é movido para um sistema em que o intérprete está localizado executável em um caminho diferente, mas é essa a única razão?
Solução
A portabilidade é melhor se você usar esta expressão:
#!/usr/bin/env php
mas tem desvantagens do seu próprio;ver uma discussão mais no http://sites.google.com/site/frankpzh/knowledge-library/shebang
Outras dicas
Diferentes caminhos seria a razão principal, especialmente quando binários começar a ficar armazenado em 64 x denotado caminhos ou instalado em /usr/local/bin/php.