Bashシェルスクリプト内でaliasコマンドを使う方法
はじめに
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
コマンドをシェルスクリプト内で利用した場合にエラーが出た場合に参考にしていただければと思います
ディスカッション
コメント一覧
まだ、コメントがありません