我运行了Dockerized Jupyter Server,但我不想手动获取其访问令牌。所以我想写一个bash脚本来提取令牌并用它打开服务器
我尝试如下:
docker run --name notebook -w /home/fenics -v $(pwd):/home/fenics/shared -d -p 127.0.0.1:8888:8888 quay.io/fenicsproject/stable 'jupyter-notebook --ip=0.0.0.0'
token=`docker logs notebook 2>&1 | grep -o "token=[a-z0-9]*" | sed -n 1p`
google-chrome http://127.0.0.1:8888/?$token
但是,它不起作用。由于命令docker logs notebook
与脚本或控制台在同一命令的同一行中不会输出任何内容。但是,如果您在终端中一一写入命令,则可以。
请告诉我如何解决问题(即使解决方案不同也可以),并解释为什么我的代码无法工作(我想知道,因为它已经是我要解决的第二个问题这样)
答案 0 :(得分:0)
不要使用``而是$()。 我认为外壳可能有所不同。
我刚刚尝试过并且奏效了
token=$(docker logs notebook 2>&1 | grep -o "token=[a-z0-9]*"| sed -n 1p)