编写脚本以自动化我的烧瓶环境设置。
if [[ -z $1 ]];
then
echo "usage: flaskup <dirname> <template dir>";
exit
else
virtualenv $1 &&
cd ./$1 &&
source bin/activate &&
bin/pip install flask &&
mkdir ./app &&
mkdir ./app/static &&
mkdir ./app/templates &&
exit;
fi
我希望这会将我留在它创建的目录中,并激活虚拟环境,但是它让我在同一个目录中运行脚本。如何在激活的虚拟环境中使用shell退出脚本?
答案 0 :(得分:2)
如果你在自己的shell中运行脚本(如果/path/to/script
或script
运行它,那么你就无法获得你想要的东西)。运行脚本的shell与您运行它的shell不同,它不能更改父shell的状态。您最接近的方法是让脚本将路径作为输出回显并以$PATH
或类似方式运行。
或者,如果您将脚本作为cd "$(/path/to/script)"
(或类似的)运行,那么您将使用当前的shell运行它,并且它将在您当前的shell而不是子shell中进行任何目录更改。< / p>