デフォルトでは、インタラクティブに実行されるbashスクリプトを定義できますか?

デフォルトでは、インタラクティブに実行されるbashスクリプトを定義できますか?

~/bin私はいくつかのスクリプトを書いて私のフォルダに保存しました。シェルセッション中にヘッダーを呼び出して実行できました。ただし、インタラクティブには実行されません。つまり、エイリアスは~/.bashrcロードされません。

インタラクティブに実行するようにデフォルトとして表示する方法はありますか?それとも、source ~/.bashrcその中に定義されたエイリアスを使用する必要がありますか?

選択肢を歓迎します!

答え1

hashbangにこのオプションを追加すると、-iスクリプトが対話型モードで実行されるように指定されます。

#!/bin/bash -i

または、次のオプションを使用してスクリプトを呼び出すこともできます。

bash -i /path/to/script.sh

答え2

あなたの製品を調達するのは.bashrc良い考えではありません。.bash_aliasエイリアスを使用してファイルを作成し、スクリプトからそのファイルをインポートして使用できます。shopt

それは次のとおりです。

shopt -s expand_aliases
source ~/.bash_alias

Bashのマニュアルページには次のように記載されています。

シェルが非対話型の場合、Shoptを使用してExpand_aliasesシェルオプションを設定しない限り、エイリアスは拡張されません(以下のSHELL BUILTIN COMMANDSの下のshoptの説明を参照)。

関連情報