エイリアスとシェル関数

 

●エイリアス

コマンド 説明 書式 主なオプション 補足
alias コマンドの別名を定義

コマンドによく使うオプションをあわせて定義

複数のコマンドを組み合わせる

などが可能

alias [エイリアス=コマンド] 引数を指定しないと
現在登録されているエイリアスの一覧を表示

登録されているエイリアスを削除するには
unalias エイリアス

エイリアスの前に\(バックスラッシュ)を付けると
エイリアスとして扱われない

 

 

●シェル関数

コマンド 説明 書式 主なオプション 補足
function 新しいコマンド(シェル関数)を定義 function 関数名( ) { コマンド; }

{ の後ろと、
} の前にはスペースが必要

(例)

function lsdir( ) { ls -l $1 | grep '^d' ; }

とシェル関数 lsdir を定義すると

lsdir /etc で、/etc以下のサブディレクトリが表示される

($1はlsdirコマンドに与えられる1番目の引数という意味)

declare -f 定義されているシェル関数を表示 declare -f setコマンドでは、
定義されている変数リストと
定義されているシェル関数を表示できる
unset 定義されているシェル関数を削除 unset 関数名 変数の定義の削除と同様

 

 

●エイリアスとシェル関数の自動定義

エイリアスやシェル関数の定義が有効なのは、それを設定したシェル内のみ
新たなbashシェルを起動してからもそれらの定義を有効にしたい場合は、
下記のbashの各種設定ファイルによく使われるエイリアスやシェル関数、環境変数PATHをあらかじめ記述しておく

bash設定ファイル

/etc/bashrc bash起動時(対話型シェル)に実行 全ユーザに適用される 
/etc/profile ログイン時(ログインシェル)に実行 全ユーザに適用される 
~/.bashrc bash起動時に実行 ユーザ毎に適用される
~/.bash_profile ログイン時に実行 ユーザ毎に適用される 
~/.bash_login ~/.bash_profileが存在しない場合に実行 ユーザ毎に適用される
~/.profile ~/.bash_profileも~/.bash_loginも存在しない場合に実行 ユーザ毎に適用される
~/.bash_logout ログアウト時に実行 ユーザ毎に適用される

ユーザがログイン時に実行されるシェルは一般的にログインシェルと呼ばれる
またbashコマンドからやX Window System上で端末エミュレータを起動した場合は、対話型シェルと呼ばれる

 

 

●環境変数とシェル変数

環境変数:
シェル自身とそのシェルから起動される全てのプロセス(コマンドや別のシェル)で有効になる変数
代表的な環境変数としては、
コマンドを検索するディレクトリリストを格納するPATH、
ユーザのホームディレクトリのフルパスを表すHOMEなど

シェル変数:
他のシェルやプログラムでは有効とならず、そのシェル内でのみ有効な変数
シェル変数をexportコマンドでエクスポートすることで環境変数とすることが出来る

 

 

 

 

 

シェルスクリプト

bashシェルに備わっているスクリプト言語による簡単なプログラミング機能

 

●最も単純なシェルスクリプトとシェルスクリプトの実行

シェルスクリプトはテキストファイル中にコマンドを記述する形で作成する

-------サンプルのシェルスクリプト----------

#! /bin/bash         ←インタープリタを指定

echo "sample script"   ←この2行目以降がこのシェルスクリプトで実行されるコマンド

date

-----------------------------------------

 

一般的にシェルスクリプトは .sh という拡張子が付けられる

作成したシェルスクリプトを実行するには以下の方法がある

sourceコマンドを使用
(スクリプトファイルの読み取り権と
スクリプトファイルが存在するディレクトリの実行権が必要)

もしスクリプトファイルの実行権があれば、
sourceコマンドを使用せず
直接スクリプトファイル名を入力すれば実行できる

source スクリプトファイル名

もしくは

 . スクリプトファイル名

新たにシェルを起動して実行 bash スクリプトファイル名
実行アクセス権を設定してコマンドと同じように実行 chmod u+x シェルスクリプト名

 

 

●引数と戻り値

シェルスクリプトでは引数や戻り値という機能も利用できる

 

引数:
シェルスクリプト内に「$1」「$2」「$3」・・・のように記述すると、
そのシェルスクリプトを実行するときに指定した引数と置き換えられる

 

戻り値:
コマンドやシェルスクリプトは処理の最後にシェルに対して戻り値を返し、変数「$?」に格納される
正常に終了した場合には0、正常に終了しなかった場合は0以外の数字が格納される

 

 

●条件分岐

条件分岐に使われるコマンドと制御文

コマンド・制御文 説明 書式 主なオプション 補足
test ファイルの存在確認 test 条件式

もしくは

[ 条件式 ]
(条件式の前後に必ず空白を入れる)

(主なファイル条件)

-d ディレクトリ:
指定したディレクトリが存在する

-e ファイル:
指定したファイルが存在する

-f ファイル:
指定したファイルが存在し、かつ通常のファイルである

-r ファイル:
指定したファイルが存在し、かつ読み取り可能である

-w ファイル:
指定したファイルが存在し、かつ書き込み可能である

-x ファイル:
指定したファイルが存在し、かつ実行可能である

(主な文字列条件)

-n 文字列:
文字列の長さが0ではない

文字列1=文字列2:
文字列1と文字列2の長さが等しい

if/then/else 基本的な条件分岐 if 条件式
then
 コマンド1
[else
 コマンド2]
fi
条件式によくtestコマンドが使われる
case/in/esac 3つ以上の条件分岐 case 変数
in
 パターン1)
 コマンド1
 ;;
 パターン2)
 コマンド2
 ;;
(以下任意の数だけパターンを記述)
esac
 

 

 

●繰り返し

コマンド・制御文 説明 書式 主なオプション 補足
while/do/done 条件による繰り返し while 条件式
do
 コマンド
done

for/do/done 要素による繰り返し for 変数 [in 変数に代入する値のリスト]
do
 コマンド
done
変数の前に$は付けない

 

 

 

 

 

 

 

 

 

inserted by FC2 system