このスクリプトを ~/.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