~/.bashrc
、、、~/.bash_profile
の/etc/profile
違いを知っています/etc/bash.bashrc
。これ以外は/etc/profile
シェル固有bash
。
どのユーザーでもスクリプトを開くたびにスクリプトを実行したいと思います。ログインしていません(対話型または非対話型)シェルbash
ですがsh
。私の目標は、docker exec ... /bin/sh
Alpine Linuxコンテナに入るたびに実行されるスクリプトを持つことです。このコンテナはそうではありませんbash
。
そのようなグローバル設定ファイルはありますかsh
?そうでなければ、この動作をエミュレートすることは可能ですか?
ベストアンサー1
動作はsh
POSIX によって指定されます。 Linuxシステムには、bash、dash、mksh、またはashを含むがこれらに限定されないいくつかのシェルを使用することができます。/bin/sh
これらのそれぞれにこの動作を実装するためのカスタムメカニズムがあるかもしれませんが、信頼できる唯一のものはPOSIXです。指定されます。
sh
環境変数をENV
ファイル名に設定して、対話型使用のための設定ファイルを指定します。さらに、POSIXは非ログインシェルの標準文書を提供していません。 POSIX テキストは次のようになります。
対話型シェルが呼び出された場合にのみ、この変数はシェルによって拡張されたパラメーターになります(パラメーター拡張を参照)、結果の値は現在の環境で実行されるシェルコマンドを含むファイルのパス名として使用されます。ファイルが実行可能である必要はありません。拡張値が
ENV
絶対パス名ではない場合、結果は指定されません。ENV
プロセスの実際の有効ユーザーIDまたは実際の有効グループIDが異なる場合は無視されます。
非対話型シェルのコマンドが必要な場合は、コマンドラインでそのコマンドを引数として指定する必要があります。