bash脚本启动新shell并继续运行命令

bash脚本启动新shell并继续运行命令,bash,shell,jupyter-notebook,pipenv,Bash,Shell,Jupyter Notebook,Pipenv,我完全不懂写bash脚本。我正在努力做到以下几点: #!/bin/bash mkdir New_Project cd New_Project pipenv install ipykernel pipenv shell python -m ipykernel install --user --name==new-virtual-env jupyter notebook 我遇到的问题是,在执行pipenv shell之后,它启动新shell,然后不执行最后两个命令。当我退出新shell时,它会尝

我完全不懂写bash脚本。我正在努力做到以下几点:

#!/bin/bash

mkdir New_Project
cd New_Project
pipenv install ipykernel
pipenv shell
python -m ipykernel install --user --name==new-virtual-env
jupyter notebook
我遇到的问题是,在执行
pipenv shell
之后,它启动新shell,然后不执行最后两个命令。当我退出新shell时,它会尝试执行其余的行。有没有办法让脚本从头到尾运行所有这些命令?

根据:

shell将生成一个激活了virtualenv的shell

这不是你需要的。改为使用
运行

run将从virtualenv运行给定命令,并带有任何参数 转发(例如$pipenv run python)

在你的情况下,类似于

pipenv run python -m ipykernel install --user --name==new-virtual-env

谢谢你的回答!只是为了澄清一下,
pipenv run
将运行任何shell命令,即
pipenv run scrapy
等。不仅仅是python,您还可以使用
source$(pipenv--venv)/bin/activate
输入venv。这将激活您使用
pipenv安装
创建的虚拟环境,而无需打开新的shell(这正是
pipenv shell
所做的)。然后您需要使用
停用
(而不是
退出
)停止venv。我希望这有帮助。