バインディングを設定できるが、ユーザー設定なしでbashを実行する

バインディングを設定できるが、ユーザー設定なしでbashを実行する

次の2つの属性を使用してスクリプトを実行したいと思います。

  1. スクリプトの内容はすべて、bashrcを取得できなかったかのように実行されます。
  2. スクリプトの完了後も保持されるバインディングを設定できます。

たとえば、私の.bashrcが次のような場合

alias rm="echo don't use me"

次のスクリプトを実行できるようにしたいです。

  • rm.me削除済み
  • その後、実行するとfnエコーが発生します。i am bound
rm rm.me
fn() { echo i am bound; }

を実行するとbash my-script.shバインドさfnれず
、実行すると. my-script.sh私のrmエイリアスを使用します。

ベストアンサー1

スクリプトをインポートすると、いつでもエイリアス拡張を無効にできます。

shopt -u expand_aliases; . ./myscript.bash; shopt -s expand_aliases

myscript.bash設定した変数、関数、umask、制限、トラップ、リダイレクト、オプションなどは引き続き継承されます~/.bashrc。)

おすすめ記事