bashコマンドを実行してプロンプトを開いたままにする方法は?

bashコマンドを実行してプロンプトを開いたままにする方法は?

環境を設定するためにいくつかのコマンドを実行してから、ユーザーにプロンプ​​トを表示するbash関数を作成しています。

私は走ることができます

bash -c 'ls'

lsbashで実行されます。

私もできます。

bash -c 'ls ; exec bash'

lsbashプロンプトを実行して開いたままにします。

しかし、ファイルをインポートしていくつかのエイリアス、関数、および環境変数を設定し、次のようにプロンプ​​トを開いたままにしたいと思います。

 bash -c 'source env.sh ; exec bash'

もちろん、サブシェルはエイリアスや関数を継承しないため、これは機能しません。この問題を解決する方法はありますか?.bashrcそのオプションを使用する代わりに、ユーザーのソースを取得することをお勧めします--init-file

答え1

最初にユーザーのinitファイルをインポートし、必要な他の操作を実行するinitファイルを設定します。

$ cat env.sh
. ~/.bashrc
export SOMEVAR="value"
somespecialfunction() {
  printf '%s\n' "I'm so cool"
}
$ bash --init-file env.sh

関連情報