Есть файлик без расширения, именуемый testfile, с содержимым:
#!/usr/bin/env php
<?php
echo 1111;
На текущий момент, если я пишу
testfile
то получаю ошибку:
testfile: command not found
Если пишу
php testfile
то всё хорошо.
Я хочу писать в консоли testfile и чтобы он исполнялся интерпретатором php. Я думал, что директива #!/usr/bin/env php должна делать задуманное, но нет.
Для того чтобы запускать в консоли какой-то файл на исполнение, надо, во-первых, дать этому файлу право на исполнение:
chmod +x testfile
Далее, разберемся в чем разница между ./testfile и testfile.
./testfile сообщает что "В текущей директории (так как . это обозначение текущей директории) найди файл testfile и запусти его"
testfile сообщает что "Найди файл testfile и запусти его". Естественно, поиск файла testfile по всему диску/дискам может затянуться, поэтому существует специальное ограничение - поиск ведется по путям, обозначенным в переменной PATH.
Ее значение можно получить например так:
> echo $PATH
Выведется нечто вроде
/usr/local/sbin:/usr/local/bin:
Здесь каждое значение между : обозначает путь, где система попытается найти ваш файл. Таким образом, можно, например, поместить testfile в каталог /usr/local/bin и свободно запускать теперь testfile, так как система его найдет. Вторым вариантом является модификация переменной $PATH и добавление туда вашего пути, чтобы система могла поискать исполняемый файл и в нем.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей