rukurxの日記

自分の日々の作業や調べたことのメモ

aliasで設定したコマンドをシェルスクリプト内で実行する

シェルスクリプトを実行したらaliasで追加したコマンドが無いよと怒られた...

./hoge.sh: 行 40: hoge: コマンドが見つかりません

普段コマンドラインで使っているコマンドだったので、???状態。 man bash で見たらインタラクティブモードじゃないとaliasで登録したコマンドが使いえないらしい...

Aliases are not expanded when the shell is not interactive, unless the expand_aliases shell option is set using shopt (see the description of shopt under SHELL BUILTIN COMMANDS below).

そこで、 /etc/bashrc にaliasを登録して、環境変数を渡すことでシェルスクリプト内でもコマンドを実行できるようにした。

$ BASH_ENV=~/.bashrc bash -O expand_aliases  hoge.sh

参考

takafumi-s.hatenablog.com