Debian 上的 $PATH 问题

Debian 上的 $PATH 问题

我认为 $PATH 有问题。我正在运行一个 shell 脚本,它抱怨说它无法识别该命令,尽管我手动运行它时它可以识别。

Shell 脚本:

#!/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”时,它显示已安装并被识别。发生了什么事?我该如何诊断?

答案1

问题似乎是您使用了 VENV 但没有定义它。

/root/StackScript:第 23 行:/bin/activate:没有此文件或目录

正在$VENV扩大到无,所以$VENV/bin/activate变成/bin/activate并且未被发现。

也许你的意思是

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

在第 6 行。

相关内容