解釈されたスクリプト:暗黙的な実行と明示的な実行
-
16-09-2020 - |
質問
で このスーパーユーザーの質問 私は、インタプリタを明示的に実行し、スクリプトを引数として提供することによって、解釈された言語(php、pythonなど)で書かれたスクリプトを実行する:
> php script.php
スクリプトに行を追加してOSに実行するように指示するのではなく、次のようにします:
#!/usr/bin/php
<?php
echo "hello world";
?>
なぜこれは本当ですか?私の直感では、スクリプトがインタプリタの実行可能ファイルが別のパスにあるシステムに移動された場合の方が安全だと言われていますが、それが唯一の理由ですか?これを行うには、次の手順に従ってください。
解決
このイディオムを使用すると、移植性が向上します:
#!/usr/bin/env php
しかし、それはそれ自身の欠点を持っています;で長い議論を参照してください http://sites.google.com/site/frankpzh/knowledge-library/shebang
他のヒント
特にバイナリがx64で示されたパスに格納されたり、/usr/local/bin/phpにインストールされたりする場合は、異なるパスが主な理由になります。
所属していません StackOverflow