Shebang не работает, когда файл выполняется непосредственно из папки

Я пытаюсь запустить функцию из файла php и запустить его из Cli без необходимости ввода php deploy так добавили притон так что клиент знает, как запустить скрипт.

например

#!/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 работает как положено. Мне просто интересно, почему, если запустить из каталога bin: deployer deploy я получил -bash: deployer: command not found

0

Решение

попробуйте это внутри bin/ каталог:

./deployer deploy

Если вы опустите ./ перед вашим файлом ваша оболочка будет искать команду deployer на вашем пути ($PATH), вместо того, чтобы рассматривать его как путь к файлу для выполнения.

$PATH это список каталогов, где ваша оболочка будет искать введенную вами команду.
Чтобы увидеть, что находится на вашем пути, попробуйте:

echo $PATH
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]