Назад | Перейти на главную страницу

Проблемы с $ PATH на debian

Я думаю, у меня проблема с $ PATH. Я запускаю сценарий оболочки, и он жалуется, что не распознает команду, хотя когда я запускаю ее вручную, она распознает.

Сценарий оболочки:

#!/bin/bash
# DEPLOYMENT

USR="test"
APP="/srv/www/test"
ENV="/srv/www/test/venv"
LOG="/var/log"

# LOGGING
exec > >(tee -a $LOG/log.log)
exec 2> >(tee -a $LOG/error.log)

# SOFTWARE
apt-get update
apt-get install -y python-dev build-essential nginx python-pip

# PACKAGES
pip install virtualenv uwsgi supervisor

# ENVIRONMENT
mkdir -p $APP
virtualenv $VENV
source $VENV/bin/activate

# FINALIZATION
service supervisor restart
service nginx restart

Когда я запускаю это, я получаю следующую ошибку:

Журнал ошибок:

/root/StackScript: line 22: virtualenv: command not found                                             
/root/StackScript: line 23: /bin/activate: No such file or directory                                  
supervisor: unrecognized service

Когда я запускаю команду «pip» вручную, она говорит, что она установлена ​​и распознана. Что происходит и как это диагностировать?

Проблема, похоже, в том, что вы использовали VENV без его определения.

/ root / StackScript: строка 23: / bin / activate: нет такого файла или каталога

то $VENV расширяется до нуля, поэтому $VENV/bin/activate становится /bin/activate и не найдено.

Возможно вы имели в виду

VENV="/srv/www/test/venv"

в строке 6.