私は次のようなbash関数を書いた。戻るgithub経由で共有します。今、インストール手順に苦労しています。 「インストール」bash機能には2つのオプションがあることがわかります。
- それらを入れる
.bashrc
- .bash_functionsというファイルに入れて、そのファイルを
.bashrc
だから私の考えは、機能をダウンロードし、.bashrc
それに応じてファイルを変更することをお勧めします。
同様のプロジェクトでこれをどのように実装するかを見てみましたが、その中にはインストール時に.bashrc
ファイルを操作することもありました(つまり、そこに機能を配置しました)。これは一般的なようですが、.bashrc
自動化するのは悪い考えだと思います。
それでは、どのような方法が好ましいでしょうか?これについての合意はありますか?
答え1
展開方法には3つあります。
- 次の行を追加
$HOME/.bashrc
- ソースがあるファイル
.bashrc
- ディレクトリに含めることができるファイル
/etc/profile.d
私はそれが機能の数と長さに依存していると言いたいです。 2つ以上の機能があり、少し長い場合は、ユーザーファイルからインポートまたは提供された$HOME/.bashrc
スクリプトを介してマージされた単一のファイル(または複数のファイル)として展開することをお勧めします。/etc/profile.d
単一の関数、または2つの関数で短い場合は、厳密に.txtファイルとして配布するか、単にgithubにコードとして公開して現在のフォルダにコピー/貼り付けることができます。$HOME/.bashrc
既存のファイルから/etc/profile.d
最終的にユーザーに任せます。
メモ: /etc/profile.d
複数のシェル(Csh、Bash、Zshなど)用のファイルが含まれています。ここに含まれるすべてのファイルは他のシェルでも使用されます。これらのファイルの名前は、そのファイルを使用するシェルを決定します。 Aは.csh
Csh / Tcshを提供し、a.sh
はBash、Zshなどを提供します。
正しい使用について/etc/profile.d
気になる場合は、追加されたファイルには/etc/profile.d
ログイン開始時に一度だけ実行されるコマンドが含まれている必要があります。 (ここにはログインシェルで始まるため、グラフィカルログインも含まれます。)シェルが対話型の場合、シェルを実行しているユーザーはおそらくログインしているので、祖先(開始者または開始者)が存在する可能性があります。 、または開始など)これはログインシェルです。
AskUbuntuで次の素晴らしい回答をチェックしてください。非ログインシェルが/etc/profileを呼び出さないのはなぜですか?、対話型シェルとログインシェルの違いとその意味について詳しく説明します。