【发布时间】:2021-07-20 20:44:03
【问题描述】:
我创建了一个 bash 脚本来为多个应用(React、Next.js、django 等)搭建样板。
在我的 django_install() 函数的一部分中,我运行以下命令(在此处简化):
mkdir "$app_name"
cd ./"$app_name" || exit 0
gh repo clone <my-repo-boilerplate> .
rm -rf .git
pipenv install
pipenv install --dev
exit 0
我还想执行pipenv shell 和一些需要在该虚拟环境中运行的命令,因为我的样板文件有一些我想运行以完全自动化脚本的自定义脚本。
我知道我不能只在我的 bash 脚本中运行 pipenv shell 或 python manage.py [etc...]。
我怎样才能实现它?
【问题讨论】:
-
为什么不能运行这些命令?是因为它们是互动的吗?
-
另外,根据您发布的代码示例,不需要您的
exit 0 -
除非我在其他地方做错了什么,否则
pipenv shell命令会在不同的 shell 中运行,而不是在我创建的目录中。 -
虽然this question 是批处理的,这可能值得研究
-
我添加了
exit 0,因为在脚本的最后我调用了 init() 函数。我还能摆脱它吗?我粘贴的 sn-p 在函数内的 if/else 中。
标签: bash shell virtualenv pipenv