関数の定義


Linuxサーバー管理者の技術を2日で学べる「初心者向けリナックスセミナー」
30日掛かって覚えるプロの技術を、たった2日間で学習できます。
リナックスマスター2日間集中セミナー【CentOS7.1版】
 (今すぐ↑をクリックしてください。)

bashの組み込みコマンドにあたるfunctionコマンドを使用すると、
bashシェル上で利用できる独自の関数を定義できます。
頻繁に利用するコマンドの組み合わせを定義しておくと非常に便利です。

■書式
function 関数名() { コマンド; }

{ コマンド; }の「{」の後ろと、「}」の前に半角スペースが必要です。

下記の例では、指定したディレクトリのシンボリックリンクファイルのみを
リスト表示する関数を定義しています。
----------------------------------------------------------
$ function lslink() { ls -l $1 | grep '^l'; }
$ lslink /etc
lrwxrwxrwx. 1 root root 11 1月 14 14:22 2014 init.d -> rc.d/init.d
lrwxrwxrwx. 1 root root 7 1月 14 14:25 2014 rc -> rc.d/rc
lrwxrwxrwx. 1 root root 13 1月 14 14:25 2014 rc.local -> rc.d/rc.local
lrwxrwxrwx. 1 root root 10 1月 14 14:25 2014 rc0.d -> rc.d/rc0.d
lrwxrwxrwx. 1 root root 10 1月 14 14:25 2014 rc1.d -> rc.d/rc1.d
lrwxrwxrwx. 1 root root 10 1月 14 14:25 2014 rc2.d -> rc.d/rc2.d
----------------------------------------------------------

関数を実行するには、コマンドを実行するのと同じく、関数名を入力します。
関数を利用できるのは、その関数を定義したシェル内のみとなります。

setコマンドを使用すると、定義されている関数が変数リストに続いて一覧表示されます。

bashでは、変数名と関数名を区別しないため、名前が重複しないよう注意する必要があります。

定義されている関数のみ表示するには、declare -fコマンドを使用します。
---------------------------------------------
$ declare -f
lslink ()
{
ls --color=auto -l $1 | grep '^l'
}
---------------------------------------------
上記の結果は、表示内容を省略してlslinkの部分のみを抜粋しています。

関数定義を削除するには、変数を削除する時と同様に、unsetコマンドを使用します。
下記の例では、関数lslinkを削除しています。
---------------------------------------------
$ unset lslink
$ lslink /etc
-bash: lslink: コマンドが見つかりません
---------------------------------------------



■CentOS7.1サーバー構築マニュアルを無料プレゼント
 「CentOS7.1」のサーバー構築手順、「VMware Player」の
 ダウンロードとインストール手順をまとめたマニュアルを
 無料でプレゼントしています。


 詳しくは↓のページで説明していますので、今すぐクリックしてダウンロードしてください。
 無料マニュアルをダウンロードする  無料マニュアルをダウンロードする