背景
virtualenv
私は環境「1.0」と「2.0」の切り替えに慣れています。管理端末を
使用しています。ある環境で作業するときは、すべての新しいウィンドウがその環境で起動したいと思います。screen
screen
質問
screen
Bashに新しいシェルインスタンスに環境変数を設定するように指示できるので、次のエイリアスを作成できます。
alias one='export PRJCT=1.0; screen-magic-setenv PRJCT=1.0; workon 1.0'
alias two='export PRJCT=2.0; screen-magic-setenv PRJCT=2.0; workon 2.0'
~/.bashrc
その後、通話中:
[[ -z $PRJCT ]] || workon $PRJCT # switch to project if set
次のように、新しいシェルに環境変数を設定するようにコマンドを発行できることはわかっていますが、screen
エイリアスでは機能しないため役に立ちません。
:setenv PRJCT
2.0
答え1
私が正しく理解した場合、問題はシェルエイリアスを使用して画面と直接対話する方法が見つからないことです。代わりに、次の-X
コマンドを使用して実行画面にコマンドを送信できます。setenv
$ screen -list
There are screens on:
25216.pts-45.antiriad (Attached)
$ screen -S 25216 -X setenv PRJCT 2.0
その後、対応する変数が設定され、その時点からサブシェルから継承されます。適切に設定された別のセッション名を:setenv
使用すると、-S
操作が簡単になる可能性があります。この変数はSTY
現在の画面セッションを保持します。
screen -X setenv PRJCT 2.0
screenセッションでのみ実行している場合は、それを省略すると-S
そのscreenインスタンスに適用されます。
alias one='export PRJCT=1.0; screen -X setenv PRJCT 1.0; workon 1.0'