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

Aus*_*tin 6 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
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,在执行之后pipenv shell,它启动新shell,然后不执行最后两个命令.当我退出新shell时,它会尝试执行剩余的行.有没有办法让脚本从头到尾运行所有这些命令?

sjs*_*sam 6

根据手册:

shell将激活virtualenv生成一个shell.

这不是你需要的.而是使用run:

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

在你的情况下,像

pipenv run python -m ipykernel install --user --name==new-virtual-env
Run Code Online (Sandbox Code Playgroud)