
Я хочу автоматически выполнять команды с префиксом/usr/bin/env
$/usr/bin/env composer install (this runs OK)
$/usr/bin/env cd public (failed ---> /usr/bin/env: cd: No such file or directory)
Я новичок в Linux и, по-моему, использование /usr/bin/env
— странный способ записи команд. Интересно, почему моя вторая строка не сработала (хотя некоторые сработали, например mkdir
или ls
)
Причина, по которой я не могу избавиться от , /usr/bin/env
заключается в том, что я использую Capistrano, и он продолжает добавлять префикс. Если есть способ избавиться от /usr/bin/env
, это еще лучше.
Заранее спасибо.
решение1
Вы не можете запустить, env cd /path/to/directory
потому что в вашей системе нет вызываемой программы cd
. Процесс может изменить свой рабочий каталог с помощью системного вызова. В оболочке вы можете использовать встроенную команду cd
. Вызов ее из env
не имеет смысла, так как он создает новый процесс, который завершится сразу после изменения своего рабочего каталога. Новый env
процесс не может изменить рабочий каталог вызывающего процесса стандартным способом.