shellscript

シェルスクリプト関数に関する変わっている点について

シェルスクリプトでは

(関数名) ()
{
}

とすることで関数を作れることは知られている.
またその関数を呼び出すにはスクリプト内で関数名を書くだけでいい.

シェルスクリプトでは端末で直接打つコマンドをそのまま利用することができ,
実質的に端末で打つコマンドをスクリプトとしてまとめていると
考えることができる.

では関数名を端末上で打ち込んで実行したらどうなるであろうか

結論としては同一端末上であれば関数は保存されており,
関数を記載したシェルスクリプトを実行した後であれば
何度でも関数名を打つことで実行することができる.

これを利用すれば~/.bashrcにシェルスクリプト実行コマンドを書くだけで
スクリプトとしてではなく,コマンドのように関数を実行することができる.

ここで問題になるのは実際のコマンドと同じ名前で関数を組んだ場合の優先権である.
結論としては関数が優先されるため,名前をつけるときにはコマンドと違う名前を
つけるようにしなければならない.

「優先される」と書いたが,「上書きされる」と捉えることもでき,
そうすればコマンドとはシェルスクリプトの関数であり,
そこから考えられることは~/.bashrcには関数をコマンドとして登録するために
実行するプログラムがあるのではないだろうかということである.

  • 最終更新:2016-11-05 20:26:09

このWIKIを編集するにはパスワード入力が必要です

認証パスワード