我正在尝试从 php 文件运行一个函数并从 cli 运行它,而无需键入php deploy
所以添加了一个 shebang,以便 cli 知道如何运行脚本。
例如
#!/usr/bin/env php
<?php
if (PHP_SAPI !== 'cli') {
echo 'bin/deployer must be run as a CLI application' . "n";
exit(1);
}
function deploy(){
echo "Deploying" . "n";
}
foreach ($argv AS $arg){
function_exists($arg) AND call_user_func($arg);
}
文件:部署程序
这在根目录中工作正常,并且运行bin/deployer deploy
按预期工作。我只是好奇为什么如果从目录箱运行:deployer deploy
我得到-bash: deployer: command not found
在bin/
目录中尝试一下:
./deployer deploy
如果省略文件前面的./
,shell 将在路径 ( $PATH
( 中查找命令deployer
,而不是将其视为要执行的文件的路径。
$PATH
是一个目录列表,您的 shell 将在其中查找您键入的命令。要查看路径中的内容,请尝试:
echo $PATH