bash機能を実行して画面を実行する

bash機能を実行して画面を実行する

私はaws Ubuntuインスタンスを使用しています。画面でPython仮想環境を有効にするなど、いくつかのショートカットを実行するエイリアス/関数を作成したいと思います。

私はこの機能を次のようにしました。

# Alias for jupyter notebook
function start_jupyter() {
    cd my_path/lab_workspace/  # 1. cd into my workspace
    source labworkspaceenv/bin/activate  # 2. activate my python virtualenv
    screen -S jupyter_lab  # 3. start screen
    echo 'You are in screen for jupyter lab'  # 4. print something
    jupyter lab  # 5. start jupyter lab
}

問題は、を使用して関数を実行すると、start_jupyter画面を作成した後に停止するように見えますが、何も印刷されず、jupyterlabが起動しないことです。

私は何が間違っていましたか?

答え1

関数が停止する理由は、対話型画面セッションを作成したためです。次のことをしたい場合があります。

screen -dmS jupyter_lab jupyter lab

これにより、名前付きの個別の画面セッションが作成され、jupyter_labその中でコマンドが実行されます。

screen --help情報によると:

-dmS name     Start as daemon: Screen session in detached mode.

したがって、あなたの機能は次のとおりです。

# Alias for jupyter notebook
function start_jupyter() {
    cd my_path/lab_workspace/  # 1. cd into my workspace
    source labworkspaceenv/bin/activate  # 2. activate my python virtualenv
    screen -dmS jupyter_lab jupyter lab  # 3. start screen    
}

関連情報