我正在尝试从php文件运行一个函数并从cli运行它而不必键入php deploy
所以添加了一个 shebang 所以cli知道如何运行脚本。
e.g。
#!/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);
}
文件:deployer
这在根目录下运行良好,并且运行bin/deployer deploy
按预期工作。我只是好奇为什么如果从目录bin运行:deployer deploy
我得到-bash: deployer: command not found
答案 0 :(得分:1)
在bin/
目录中尝试此操作:
./deployer deploy
如果省略文件前面的./
,shell将在您的路径(deployer
)中查找命令$PATH
,而不是将其视为路径要执行的文件。
$PATH
是一个目录列表,您的shell将查找您键入的命令。
要查看路径中的内容,请尝试:
echo $PATH