bash 脚本开始新的 shell 并继续执行 运行 命令

bash script starting new shell and continuing to run commands

我对编写 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 时,它会尝试执行剩余的行。有什么方法可以让脚本从头到尾执行 运行 所有这些命令?

根据 manual :

shell will spawn a shell with the virtualenv activated.

这不是您需要的。而是使用 run :

run will run a given command from the virtualenv, with any arguments forwarded (e.g. $ pipenv run python).

在你的情况下,类似于

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