/etc/bash.bashrc は sh と同じです。

/etc/bash.bashrc は sh と同じです。

~/.bashrc、、、~/.bash_profile/etc/profile違いを知っています/etc/bash.bashrc。これ以外は/etc/profileシェル固有bash

どのユーザーでもスクリプトを開くたびにスクリプトを実行したいと思います。ログインしていません(対話型または非対話型)シェルbashですがsh。私の目標は、docker exec ... /bin/shAlpine Linuxコンテナに入るたびに実行されるスクリプトを持つことです。このコンテナはそうではありませんbash

そのようなグローバル設定ファイルはありますかsh?そうでなければ、この動作をエミュレートすることは可能ですか?

ベストアンサー1

動作はshPOSIX によって指定されます。 Linuxシステムには、bash、dash、mksh、またはashを含むがこれらに限定されないいくつかのシェルを使用することができます。/bin/shこれらのそれぞれにこの動作を実装するためのカスタムメカニズムがあるかもしれませんが、信頼できる唯一のものはPOSIXです。指定されます。

sh環境変数をENVファイル名に設定して、対話型使用のための設定ファイルを指定します。さらに、POSIXは非ログインシェルの標準文書を提供していません。 POSIX テキストは次のようになります。

対話型シェルが呼び出された場合にのみ、この変数はシェルによって拡張されたパラメーターになります(パラメーター拡張を参照)、結果の値は現在の環境で実行されるシェルコマンドを含むファイルのパス名として使用されます。ファイルが実行可能である必要はありません。拡張値がENV絶対パス名ではない場合、結果は指定されません。ENVプロセスの実際の有効ユーザーIDまたは実際の有効グループIDが異なる場合は無視されます。

非対話型シェルのコマンドが必要な場合は、コマンドラインでそのコマンドを引数として指定する必要があります。

おすすめ記事