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
,這似乎在 3 之後停止。創建了螢幕,但沒有列印任何內容,並且 jupyterlab 沒有啟動。我究竟做錯了什麼?
該函式停止的原因是您生成了一個互動式螢幕會話。您可能想要這樣做:
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 }