はじめに
Bashシェルスクリプト内で alias コマンドを使ってエイリアス設定しようとしてもデフォルトのままでは設定できません。
設定する方法について紹介します。
検証環境
| |
シェルスクリプト内でaliasコマンドを使ってみる
ls -l コマンドをかんたんに扱うための ll というエイリアスを作成し、実行するスクリプトを用意してみます。
| |
これを実行してみます。
| |
alias コマンドで用意した ll というエイリアスコマンドが認識されていない事がわかります。
Bashのドキュメントを確認してみる
Bashのドキュメントを引くと理由がわかります。
| |
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).
翻訳すると以下の通りです。
シェルが非対話の場合、shopt を使用して expand_aliases シェルオプションを設定しない限り、エイリアスは展開されません(以下のSHELL BUILTINコマンドの下のshoptの説明を参照)。
デフォルトでは、非インタラクティブなシェル、つまりシェルスクリプトでは alias コマンドが使えません。
シェルスクリプト内でaliasコマンドを使えるようにするには
シェルスクリプト内でexpand_aliasesオプションを設定してやります。
| |
実行してみます。
| |
ll エイリアスコマンドが実行できるようになりました。
ひとこと
function を使って関数定義でも同じような事ができますので、必要になることは少ないと思います。
aliasコマンドをシェルスクリプト内で利用した場合にエラーが出た場合に参考にしていただければと思います