next up previous contents
Next: バックグランド処理 Up: シェルの機能 Previous: コマンドの区切り文字

コマンドのグルーピング

 

シェルは幾つかのコマンドをコマンド群をまとめ、あたかも1つのコマンドのように 実行させることができ、これをコマンドのグルーピングと言います。 グルーピングを行なうにはまとめたいコマンド類を小括弧で囲んで ( ) と するか、あるいは中括弧を使って { ; } のようにします。 この2つはいずれもコマンドのグルーピングを行なう点は同じですが、( ) は サブシェル(Page: gif 参照)で実行され、{ ; } はカレントシェルで実行されます。 この違いを次の例で確認してください。

$ pwd
/usr/try
$ (cd /bin; ls -C)
$ pwd
/usr/try
$ { cd /bin; ls -C; }
$ pwd
/bin
( ) はサブシェルで実行されるために終了後のカレントディレクトリは 変わりません。一方、{ ; } はカレントシェルで実行されますので終 了後のカレントディレクトリが変わってしまうのが確認できたと思います。

中括弧 { ; } を使ってグルーピングを1行に書くときに、 { の直後と、 } の直前には1個のスペースが必要です。 さらに中括弧でグルーピングされたコマンドの末尾にはコマンドの区切りを 表すセミコロン ; がなければいけません。これは中括弧がシェルの予約語 であるための制限です。[「4.1 構文規則」(p.gif) 参照]



Riichiro Saito
1995年08月29日(火) 11時41分26秒 JST