新しいエイリアスと関数を定義した後に更新されますか?

新しいエイリアスと関数を定義した後に更新されますか?

ファイルに新しいエイリアスを定義したり、ファイルに新しい関数を定義したりすると、端末を閉じずに新しい.bash_aliasesエイリアスまたは関数を.bashrcすぐに使用できるリフレッシュコマンドがあります(私の場合はxfce4-terminalあり)ファイルと職場で)?

答え1

変更されたファイルをインポートすると、現在の端末に新しく作成されたエイリアスまたは機能へのアクセスが提供されます。たとえば、次のようになります。

source ~/.bashrc

別の構文:

. ~/.bashrc

端末でbashインスタンスが多数実行されている場合(複数のタブを参照)、各インスタンスでそれを実行する必要があります。

答え2

. ~/.bashrcコマンドラインにこれ​​を入力すると、実行され、ファイル.bashrcで定義されているすべての機能が生成されます。

.bashrcその後、それ自体を呼び出して実行されます.bash_aliasesもし存在する).bashrc内部に次のコードがある場合:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

単独で使用している間. ~/.bash_aliases(たとえば、コマンドラインから).bash_aliases.bashrcを含まずに実行しようとし、ファイルが存在しない場合はエラーを表示します(したがって、テスト時にファイルを確認します.bashrc)。

答え3

時にはエイリアスを関数に置き換えたいのですが、bashrcファイルを取得するときに奇妙なエラーが発生することがあります。

. ~/.bashrc
bash: /home/username/.bashrc: line 38: syntax error near unexpected token `('
bash: /home/username/.bashrc: line 38: `hello_world() {'

これは、エイリアスが新しく定義された関数の名前と競合するために発生する可能性があります。私が知っている限り、この問題を回避するには、すべてのエントリのエイリアスをオフにしてbashrcファイルをインポートする必要があります。

bash-4.3 $
unalias -a && . $HOME/.bashrc

関連情報