web-dev-qa-db-ja.com

`nsenter / bin / bash`内に環境を設定します

nsenter -m -u -i -n -p -t $PID /bin/bashで名前空間を入力しています。ただし、この名前空間内のprintenvには、必要なものがすべて揃っているわけではありません。これらの変数を送信したいのですが、KEY=VALUE KEY2=VALUE2 /bin/bashのようにbashコマンドの前に付けるのは避けたいと思います。

これを行うためのより良い方法はありますか?

3
Dane O'Connor

今はこれ以上できませんが、--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変数を展開し、展開された値が名前のファイルからコマンドが読み取られて実行されます。他のスタートアップファイルは読み込まれません。

1
mikeserv