現在ログインしているシェルは、一つの bash プロセスで動作しています。(ログインシェルが bash の場合) source コマンドは、ログインで使用している bash プロセス自身が読み込んで動作します。 bash コマンドは、もう一つ bash プロセスを起動し、そちらで動作します。 どちらも同じ bash プロセスで動作しているので、質問の場合だとどちらでも同じですよ。 使い分けの注意点は、シェルの中で環境変数を定義するように作成しても、 source コマンドで実行すれば現在ログインしているシェルに反映されますが、 bash コマンドだと自分自身に反映されてもそのシェルが終了すると bash も終了するので、 現在ログインしているシェルには反映されません。 環境変数を定義しようとしている以外は大抵 bash で起動しますね。 例) export TEST=sample 上記を