编写脚本以自动化我的烧瓶环境设置.
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退出脚本?
最佳答案 如果你在自己的shell中运行脚本(将它作为/ path / to / script或脚本运行,如果它存在于你的$PATH中)那么你就无法得到你想要的东西.运行脚本的shell与您运行它的shell不同,它不能更改父shell的状态.你可以做的最接近的是让脚本将路径作为输出回显并运行为cd“$(/ path / to / script)”或类似的.
或者,如果您运行脚本为. / path / to / script(或类似的)然后你用你当前的shell运行它,并且它会在你当前的shell而不是子shell中发生任何目录更改.