`nsenter /bin/bash`で環境を設定してください。

`nsenter /bin/bash`で環境を設定してください。

Enter Namespaceを使用していますnsenter -m -u -i -n -p -t $PID /bin/bash。ただし、printenv必要なものはすべてこの名前空間にありません。これらの変数を送信したいが、bashコマンドの前にKEY=VALUE KEY2=VALUE2 /bin/bash

もっと良い方法がありますか?

ベストアンサー1

今はこれ以上のことはできませんが、使用するか--rc-fileスイッチ--profile,が切り替わるのを待つだけです。

man bash

...

bash が sh 名で呼び出されると、POSIX 標準に準拠しながら、sh の以前のバージョンの起動動作をできるだけ近い模倣しようとします。 --login オプションを使用して対話型ログインシェルまたは非対話型シェルとして呼び出されると、まず /etc/profile および ~/.profile からコマンドを順番に読み込んで実行しようとします。 --noprofileオプションを使用すると、この動作を抑制できます。 shという名前の対話型シェルとして呼び出されると、bashは変数ENVを探し、その値が定義されている場合は拡張し、拡張値を読み取り、実行するファイル名として使用します。 shで呼び出されたシェルは他の起動ファイルからコマンドを読み込んで実行しようとしないため、--rcfileオプションは効果がありません。 shという名前で呼び出された非対話型シェルは、他の起動ファイルを読み取ろうとしません。 sh で呼び出されると、 bash は起動ファイルを読み込み、posix モードに入ります。

--posix コマンドラインオプションなど、bash が posix モードで起動すると、起動ファイルの POSIX 標準に従います。このモードでは、対話型シェルはENV変数を拡張し、拡張値と呼ばれるファイルからコマンドを読み取り、実行します。他の起動ファイルは読み込まれません。

おすすめ記事