次のような仮想環境をアクティブにするリモートサーバー上に、s
という名前のスクリプトがあります。
source venv/bin/activate
サーバーにSSHで接続すると、次の方法で環境をアクティブ化できます
. s
そして私は次のようにサーバーにSSHします:
ssh -t user@Host "cd /path/to/dir ; /bin/bash"
作業ディレクトリを/path/to/dir
に変更するだけでなく、サーバーにログインするたびにすぐに環境をアクティブ化できると便利です。ただし、. s
をSSHコマンドにどこに入れても、-c
を/bin/bash
に使用するかどうかに関係なく、セッションは常に即座に終了します。
新しいソースファイルを使用します。 /home/user/.rcforssh
#rc for ssh
. /home/user/.bashrc
. /home/user/venv/bin/activate #or whichever location
でログイン
ssh -t user@Host "cd /path/to/dir ; /bin/bash --rcfile /home/user/.rcforssh"
補足:source
はPOSIXではありませんが、.
です。
OPの必要性を明記した議論に続く更新:
変更されたソースファイルrcforssh
をオンザフライで作成および削除するには、onを使用できます。
ssh -t user@Host "cd /path/to/dir ; echo '. ~/.bashrc ; . s ; rm rcforssh' > rcforssh ; /bin/bash --rcfile rcforssh"
つまり、echo
コマンドを使用してソースファイルを作成し、そのファイルに削除を追加します。