| 原作者 | ジョン・マシー |
|---|---|
| 開発者 | AT&T ベル研究所 |
| オペレーティング·システム | ユニックス |
| 利用可能 | 英語 |
| タイプ | Unixシェル |
PWBシェル( Masheyシェルとも呼ばれる)はUnixシェルの一種であった。[1]
歴史
PWB シェルは、プログラミングの使いやすさを向上させるために機能を追加した、 Thompson シェルの修正版 (一般に上位互換性が制限されている) です。John Masheyとその他 (Dick Haight、Alan Glasser)によって保守されました。 [1] [2] [3]
PWB/UNIXは1973年10月中旬のResearch Unix 4th Editionから始まり、PWB部門がResearch Unixの変更を追跡していくつかの機能を追加したため、その後数年間頻繁に更新されました。PWBシェルは1975年半ばにリリースされ[4]、バージョン6 UnixベースのPWB/UNIXを通じて利用可能でした。[5]バージョン7 Unix (1979)では、PWBシェルはBourneシェルに置き換えられました。[6] PWBシェルは1975年から1978年頃のPWB/UNIXの標準シェルでした。 [1]しかし、ログイン名、ログインディレクトリ( $s )、およびTTY( $t )を取得するために新しいシステムコールが必要だったため、Research Unixのどのエディションでも動作しませんでした。
注目すべき機能
PWB シェルで導入されたいくつかの機能は、その後の多くのシェルに残っています。if コマンドとgotoコマンドはシェルの内部に導入され、if - then - else - endif を許可するように拡張され、switchとwhile構造が導入されたほか、割り込みを無視するか、クリーンアップを実行するために割り込みをキャッチする onintrが導入されました。 [1]単純な変数も使用できましたが、その名前は 1 文字に制限され、一部の文字は特別な目的のために予約されていました。そのうちのいくつかは、バージョン 7以降のすべての Unix システムで見られる環境変数の前身です。
たとえば、$s変数は$HOMEの祖先であり、パス名のハードコーディングを回避するために使用されます。$p変数は$PATHの祖先であり、ユーザーはこれを使用して自分のディレクトリを選択してコマンドを検索できます。 当時のほとんどの UNIX システムとは異なり、オリジナルの PWB/UNIX コンピュータ センターは複数のプログラミング グループによって共有されていましたが、これらのグループは /bin または /usr/bin の内容を変更することはできませんでしたが、独自の共有コマンド セットを作成することを希望していました。 さらに、シェルのコマンド検索が拡張され、シェル プロシージャをバイナリ コマンドのように呼び出すことができるようになりました。つまり、シェルが実行可能としてマークされた非バイナリ ファイルを見つけた場合、別のシェル インスタンスをフォークして、そのファイルをシェル スクリプトとして読み取ります。 したがって、ユーザーはではなく と入力できます。 この動作はすべて、 execvpの祖先である関数pexecとしてパッケージ化され、どのプログラムでもシェルと同じ方法でコマンドを呼び出せるようになりました。 command argumentssh pathname/command arguments
以前はシェル スクリプトへの引数を識別するために使用されていた$文字は、変数の参照解除のマーカーになり、変数の値を二重引用符で囲んだ文字列に挿入するために使用できるようになりました。(この機能は、後のシェルに加えて、 PerlおよびPHPプログラミング言語にも後で登場しました。)
子孫
これらの機能では Thompson シェルの欠点を克服できなかったため、Stephen Bourneによって新しいシェルが一から作成されました。このBourne シェルはThompson シェルや PWB シェルとは互換性がありませんでしたが、PWB シェルの機能のほとんどに相当するものが含まれていました。ただし、段階的にではなく、さまざまな参加者の間で多くの議論を重ねて一から作成されました。特に、環境変数と関連メカニズムは、以前のより限定された機能を置き換える一般的なメカニズムとしてStephen Bourne、John Mashey、およびDennis Ritchieによって設計されました。バージョン 7 Unixで Bourne シェルが標準シェルとして採用された後、PWB シェルの使用は段階的に廃止されましたが、しばらくの間、Bell Labs の内部コースであるBourne Shell Programming for Mashey Shell Programmersがありました。Bourneシェルの公開前に開発されたC シェルも、PWB シェルの機能の一部を継承しました。 [出典が必要]
参照
参考文献
- ^ abcd Mashey, John R. (1976-10-13). 「コマンド言語を高水準プログラミング言語として使用する」。米国カリフォルニア州サンフランシスコ:第2回国際ソフトウェア工学会議の議事録。pp. 169–176。2020年4月12日時点のオリジナルよりアーカイブ。2020年4月12日閲覧。
これらの変数[$n、$p、$r、$s、および$t]に加えて、次の変数が提供されます。$$には、現在のシェルの一意のプロセス番号である5桁の数字が含まれます。場合によっては、プロセスを強制終了するためなどに、プロセスの番号を知る必要があります。ただし、これまでの最も一般的な用途は、一時ファイルの一意の名前を生成することです。
- ^ Likic, Vladimir (2018年9月28日). 「Bashを理解する: プログラミングの要素」. Linux Journal. 2018年12月21日時点のオリジナルよりアーカイブ。 2018年12月31日閲覧。
オリジナルのThompsonシェル、Masheyシェル、Bourneシェルはすべてshと呼ばれ、1970年から1976年にかけて改良され機能が追加されるにつれて、重複したり、互いに置き換えられたりしました。... Thompsonシェルにはプログラミング機能はありませんでした。これは、Masheyシェル(および後にBourneシェル)の開発によって変わりました。
- ^ ワイルズ、ジャック(2011年10月13日)。テクノセキュリティの電子証拠開示とデジタルフォレンジックガイド:包括的なハンドブック。エルゼビア。ISBN 97800805588132018年12月31日閲覧– Google ブックス経由。
- ^ Mashey, John R. (1999年1月27日) [1986]. Toomey, Warren (編). "Re: Shell history, true facts, but long | Newsgroups: net.unix-wizards". 2016年10月6日時点のオリジナルよりアーカイブ。2018年12月31日閲覧。
"PWB Shell" は1975年半ばに初めて登場しました。これは、1975年初頭に私が本格的なシェルプログラミングを行おうとしたときに出した一連の要件と提案から派生したものです。1975年半ばに、シェルは変数を獲得しました。その中にはプロセスごとのデータから派生した3つの変数も含まれています。ここで、より一般化されたパス検索のアイデアが生まれました。
- ^ Chorafas, Dimitris N. (1986). Which Unix? : AT&T、IBM、その他の標準メーカー。McGraw - Hill。ISBN 9780070108790. 2018年12月31日時点のオリジナルよりアーカイブ。2018年12月31日閲覧。
- ^ Iftekher, Mohammad Forhad (2015年11月10日). 「Unix/Linuxシェルの進化 - Unixmen」. Unixmen.com . 2019年7月21日時点のオリジナルよりアーカイブ。2018年12月31日閲覧。
外部リンク
- 伝統的な Bourne Shell ファミリー: 歴史と発展 (Sven Mascheck)
- PWB シェルのマニュアル ページ、1977 年 5 月 31 日
- PWB シェルの開発と影響に関する Mashey の記事
- コマンド言語を高水準プログラミング言語として使用する
