в скрипте непрерывной интеграции gitlab
Пакетные неинтерактивные оболочки не поддерживают псевдонимы (по умолчанию). И это хорошая мысль. alias
следует использовать только как свои собственные, сокращенные, а не как отдельные записи.
Вы могли бы
a) определить функцию с тем же именем и использовать полный путь для разрешения команды:
php() { /opt/plesk/php/5.6/bin/php "$@"; }
php -v
Недостатки: функция не экспортируется, если вы не добавите export -f php
, это функция оболочки. Что-то вроде xargs php
будет работать неправильно.
б) используйте varaible.
php=/opt/plesk/php/5.6/bin/php
"$php" -v
Недостаток: вы должны изменить все сценарии и всегда проверять наличие $php
.
в) Измените путь, чтобы ваш php был найден первым. Вы можете создать временный каталог и добавить его в путь:
tmpd=$(mktemp -d)
trap 'rm -r "$tmpd"' EXIT
ln -s /opt/plesk/php/5.6/bin/php "$tmpd"/php
export PATH="$tmpd"/php:$PATH
php -v
Если вы правильно export PATH
, он будет работать везде. Не забудьте удалить папку tho.
Примечание: вы не "псевдоним переменной", вы "псевдоним команды". alias
позволяет заменить первое (и только первое) слово простой командой. php
- это команда.