我已在 ~/.bashrc 文件中编写了此脚本,并且已获取该文件,但它无法正常工作。其目的是在新选项卡中打开 Chrome 浏览器中 jupyter 笔记本提供的链接。
chrome(){
echo $1 # <--- shows that jupfire is sending an empty string
# I'm using Windows Subsystem for Linux
"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe" $1
}
jupfire(){
jupyter notebook 2>juptemp &
sleep 3
chrome "$(tail -1 juptemp | grep http)"
rm juptemp
}
经过搜索并尝试了一些不成功的方法后,我得出的结论是这与 I/O 缓冲有关。可能是“jupfire”函数第一行后面的“&”导致stderr无法刷新到juptemp中,因此一个空字符串被发送到chrome函数。
看来我应该使用“stdbuf”,但我不知道如何通过检查手册页,我想出了这个:stdbuf -e0 jupyter notebook 2>juptemp &
作为 jupfire 函数的第一行,但它仍然不起作用。(要清楚,通过“不工作”我的意思是它正在 Chrome 浏览器中打开一个新选项卡,其地址栏为空)。如果问题出在缓冲上,您能指导我以正确的方式使用冲洗吗?谢谢。
编辑:这是命令“jupyter notebook”的示例输出:
... To access the notebook, open this file in a browser: file:///home/mojtabaa/.local/share/jupyter/runtime/nbserver-28353-open.html Or copy and paste one of these URLs: http://localhost:8888/?token=2ead351a97edd97dc5b5fd0aa80b6872af9f9e5c6b9ef10b