我想我的$ 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”时,说它已被安装并识别。 发生了什么,我该如何诊断?
问题似乎是你没有定义VENV。
/ root / StackScript:第23行:/ bin / activate:没有这样的文件或目录
$VENV正在扩展到没有任何东西,所以$VENV/bin/activate变成/bin/activate并且没有被find。
也许你的意思是
VENV="/srv/www/test/venv"
在第6行。