「Bourne Shell」の版間の差分

m
翻訳の修正
(→‎外部リンク: 外部リンクの修正 http://flex.phys.tohoku.ac.jp/texi/sh/sh.html)
m (翻訳の修正)
| 種別 = [[Unixシェル]]
}}
'''Bourne Shell'''('''ボーンシェル''')は、[[Version 7 Unix|Unix Version 7]] の[[Unixシェル]]である。[[POSIX]]規格で規定されるUnix系システムにおいて <code>/blebin/sh</code> はBourne Shell互換のシェルであり、<code>/bin/sh</code>はBourne Shellかその互換プログラムへの[[シンボリックリンク]]か[[ハードリンク]]になっている。多くのUnix系システムでは現在でもシェルスクリプトを記述するのに<code>/bin/sh</code>が一般的に使われている。ただし、ユーザの使うログインシェルにはより新しいシェルを用いることが一般的である。
 
[[AT&T]][[ベル研究所]]の[[スティーブン・ボーン]]が開発し、それまでの [[Thompson shell]] を置き換えた。いずれもコマンド名は '''<tt>sh</tt>''' である。[[Version 7 Unix]] の一部として1977年に大学等に配布された。対話型のコマンドインタプリタとしても使われるが、[[スクリプト言語]]としての性格が強く、一般に構造化プログラムを作り出すと考えられている全ての機能を含んでいる。
当初の設計目標には、以下の事柄が含まれていた<ref>[http://www.computerworld.com.au/article/279011/-z_programming_languages_bourne_shell_sh "The A-Z of Programming Languages: Bourne shell, or sh"] March 2009, Computerworld</ref>。
* [[シェルスクリプト]]を[[フィルタ (ソフトウェア)|フィルタ]]として使えるようにする。
* [[制御構造]]と[[変数 (プログラミング)|変数]]を導入してプログラム可能性のしやすさを向上させる。
* 全ての入出力[[ファイル記述子]]を制御する。
* シェルスクリプト内[[シグナル (Unix)|シグナル]]処理を制御する。
* シェルスクリプトを解釈する際の文字列長の制限を撤廃する。
* 文字列引用のクォート機構を合理的かつ汎用的にする。
* Version 7 で[[環境変数]]機構が追加された。これを利用して、シェルスクリプトが初期化時に構築した環境情報を、わざわざ[[引数|パラメータ]]を指定せ使わにシェルとも子スクリプト (子[[プロセス]]) 補助的な情報やコンテキストを渡すことができるようにする。
 
== 機能と特徴 ==
* スクリプトは実行前にコンパイルする必要が無い。
* Goto機能を持っていない。
* バッククートを使ったコマンド置換(Command substitution): <code>`command`</code>
* <code>&lt;&lt;</code> を使った[[ヒアドキュメント]](Here documents)機能。スクリプト内に埋め込まれたテキストブロックを入力として使う。
* "''<code>for ~ do ~ done</code>''" ループ。特に、<code>$*</code> を使って引数列上をループする方法。
60

回編集