回答:
コマンドラインから端末プログラムを実行できれば、パスの複製は簡単です。を使用していると仮定してxterm
、xterm &
クローンを作成するターミナルのプロンプトから実行します。新しいxtermは、ログインシェルとして起動するように構成されていない限り、同じディレクトリで起動します。エクスポートされた環境変数も引き継がれますが、エクスポートされていない変数は引き継がれません。
環境全体(エクスポートされていない変数を含む)をすばやく簡単に複製する方法は次のとおりです。
# from the old shell:
set >~/environment.tmp
# from the new shell:
. ~/environment.tmp
rm ~/environment.tmp
カスタムシェルオプションを設定している場合は、それらも再適用する必要があります。
このプロセス全体を簡単に実行できるスクリプトにラップできます。スクリプトに環境を既知のファイルに保存してから、を実行しxterm
ます。.bashrcでそのファイルをチェックし、ファイルを入手して、見つかった場合は削除します。
別の方法として、ある端末を別の端末から起動したくない場合、またはより詳細な制御が必要な場合は、.bashrcで定義する関数のペアを使用できます。
putstate () {
declare +x >~/environment.tmp
declare -x >>~/environment.tmp
echo cd "$PWD" >>~/environment.tmp
}
getstate () {
. ~/environment.tmp
}
編集:putstate
他の方法と一致するように、シェル変数の「エクスポートされた」状態をコピーするように変更されました。シェルオプション(を参照help set
)など、他にも同様にコピーできるものがあり、このスクリプトには改善の余地があります。
bash
ファイル内のコマンドを実行してから終了し、現在のシェルの環境は変更されません。