LINUX.ORG.RU

Не работает скрипт. Почему? Непонятно

 , , ,


0

2

Есть виртуалка, и vagrant который ее мэнеджит.
При

vagrant up
создается чистая виртуалка и на ней начинают ранаться скрипты. Ниже кусок скрипта по настройке ZendFramework. Не могу понять почему отваливатеся
zf --setup storage-directory
с ошибкой
==> default: /tmp/vagrant-shell: line 84: zf: command not found
А руками все работает. Нид хелп :(
FILE=.zf.ini
if [ -f "$FILE" ];
then
   rm $FILE
fi
touch $FILE
echo "alias zf=\"export ZF_CONFIG_FILE=/vagrant_data/$FILE; /vagrant_data/zf1-release-1.12.0/bin/zf.sh\"" >> ~/.bashrc
echo "alias zf=\"export ZF_CONFIG_FILE=/vagrant_data/$FILE; /vagrant_data/zf1-release-1.12.0/bin/zf.sh\"" >> /home/vagrant/.bashrc
source ~/.bashrc
zf --setup storage-directory



Последнее исправление: rusich (всего исправлений: 1)

source ~/.bashrc

Я бы перед этой строкой ставил что-то типа cat ~/.bashrc. не удивлюсь, если файла там не окажется или вывод будет пустым.

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 1)
Ответ на: комментарий от Kroz

я добавлял. есть там строка

==> default: # enable programmable completion features (you don't need to enable
==> default: # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
==> default: # sources /etc/bash.bashrc).
==> default: #if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
==> default: #    . /etc/bash_completion
==> default: #fi
==> default: alias zf="export ZF_CONFIG_FILE=/vagrant_data/.zf.ini; /vagrant_data/zf1-release-1.12.0/bin/zf.sh"
==> default: /tmp/vagrant-shell: line 85: zf: command not found

rusich
() автор топика
Последнее исправление: rusich (всего исправлений: 1)

Очевидно же, путей не видит.

which zf

echo $PATH

Скорее всего zf находится в $PATH, про который vagrant не знает. Надо ему это дело передать. Либо поправить скрипты, чтобы он само искало нужные пути.

shell-script ★★★★★
()
Ответ на: комментарий от shell-script

вот тут поподробнее плиз
вообще не врубаюсь отчего оно не работает...
скрипт добавляет алиас в bashrc, перегружает его и ничего не работает
захожу руками по ssh на виртуалку, пишу zf и оно его находит и работает

rusich
() автор топика
Последнее исправление: rusich (всего исправлений: 2)
Ответ на: комментарий от rusich

Когда ты заходишь от пользователя, у него задаются в переменных окружения пути к утилитам зенда. Когда запускается скрипт автоматически, этих переменных нет. Поэтому автоматика не находит нужной утилиты. Я выше привёл команды, которые могут помочь прояснить проблему.

shell-script ★★★★★
()
Ответ на: комментарий от shell-script

Когда запускается скрипт автоматически, этих переменных нет

где про это можно почитать? можете порекомендовать что-нить ?

зы всем спасибо, сча потестим!

rusich
() автор топика
Последнее исправление: rusich (всего исправлений: 2)
Ответ на: комментарий от rusich

Блин. Лучше пиши новые сообщения, а не редактируй старые, а то пока я тебе пишу ответ на одно, оно уже изменилось. :)

shell-script ★★★★★
()
Ответ на: комментарий от rusich

echo ${BASH_ALIASES[zf]}

чтобы не городить костыли, вместо alias используй function

bass ★★★★★
()
Ответ на: комментарий от joy4eg

А вообще, советую добавить set -x

Плюсую данного оратора.

Hater ★★
()

Видимо, надо добавить:

shopt -s expand_aliases
Просто в неинтерактивном шелле алиасы не работают по умолчанию.

xaizek ★★★★★
()
Последнее исправление: xaizek (всего исправлений: 1)
Ответ на: комментарий от shell-script

вот вывод

which zf
echo $PATH

==> default:
==> default: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/vagrant_ruby/bin
и zend я устанавливаю из .tar.gz

rusich
() автор топика
Ответ на: комментарий от rusich

Там алиас, в путях его нет. Опять же, когда я писал, ты ещё этого не написал. :)

Посмотри комментарии выше.

shell-script ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.