我想编写一个执行以下操作的shell脚本:
如果我做过幼稚的事情,并将其放在我的脚本中:
cd <my-docs-directory>
pipenv shell
mkdocs serve
之所以失败,是因为pipenv shell
“在虚拟环境中启动了子shell”。我需要将mkdocs serve
命令传递到虚拟外壳程序中(最好在运行脚本后进入同一外壳程序中)。
提前感谢!
Philippe的答案有效。这就是为什么。
pipenv run bash -c 'mkdocs serve ; exec bash --norc'
$ pipenv run <insert command here>
bash -c <insert command here>
允许您将命令传递给bash以执行$ bash -c "echo hello"
hello
exec
用于用命令替换当前的shell进程,以便父级执行某种方式而子级拥有pid。这是AskUbuntu上的related question。pipenv run bash -c 'mkdocs serve ; exec bash --norc'