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