新しいシェルを起動し、新しい環境変数を渡して終了するまで作業するにはどうすればよいですか?

新しいシェルを起動し、新しい環境変数を渡して終了するまで作業するにはどうすればよいですか?

購入した商用アプリケーションと対話するには、特別なシェル環境を設定する必要があります。アプリケーションは「即時」環境を照会できます。

そのため、コマンドが渡されたスクリプトを使用してシェルを起動しようとしました。

/bin/bash -c '/opt/xyq/commercialApp/bin/tool getEnv > ~/setAppEnv; . ~/setAppEnv; . ~/setMyEnv;'

これはうまくいきます...特別な環境を取得し、取得し、独自の環境を取得します...しかし、シェルは終了します。

終了するまで2番目のbashシェルにそのまま残すにはどうすればよいですか?

ベストアンサー1

これを使用して、起動時に代替を--rcfile指定できます。.bashrcこれは設定で利用できます。

/opt/xyq/commercialApp/bin/tool/getEnv > ~/setAppEnv
cat ~/setMyEnv >> ~/setAppEnv
bash --rcfile ~/setAppEnv

これをロードするには、.bashrcコマンドの後に追加するだけですcat。その後、関数に置き換えることができます。

runApp()
{
  /opt/xyq/commercialApp/bin/tool/getEnv > ~/setAppEnv
  cat ~/setMyEnv >> ~/setAppEnv
  echo '[[ -e ~/.bashrc ]] && . ~/.bashrc' >> ~/setAppEnv
  bash --rcfile ~/setAppEnv
}

おすすめ記事