コンテンツにスキップ

Bourne Shell

Xuất xứ: フリー bách khoa sự điển 『ウィキペディア ( Wikipedia ) 』
(Bourne shellから転 đưa )
Bourne shell
Tác giả スティーブン・ボーン
Sơ bản 1977 năm
Đối ứng OS UNIX
Loại đừng Unixシェル
テンプレートを tỏ vẻ

Bourne Shell( ボーンシェル ) は,Unix Version 7の デフォルトシェルでUnixで sử われていたUnixシェルの một つである.POSIXQuy cách で quy định されるUnix hệ システムではBourne Shell sau 継 の POSIX chuẩn 拠 の シェルに trí き đổi わっており, POSIXに chuẩn 拠していないBourne Shellはすでに sử われていない./bin/shはかつてはBourne Shellだったが, hiện tại はPOSIXシェルへ のシンボリックリンクハードリンクになっている ( たとえばDebianではdash,RHELではbash). Nhiều く の Unix hệ システムでは hiện tại でもシェルスクリプトを ghi lại する の に/bin/shが giống nhau に sử われている. ただし, ユーザが thông thường sử うシェルにはインタラクティブに thích したPOSIX chuẩn 拠シェルを dùng いることが giống nhau である.

AT&Tベル viện nghiên cứuスティーブン・ボーンが khai phát し, それまで のThompson shellを trí き đổi えた. いずれもコマンド danh はshである.Version 7 Unixの một bộ として1977 năm に đại học chờ に xứng bố された. Đối lời nói hình の コマンドインタプリタとしても sử われるが,スクリプト ngôn ngữとして の tính cách が cường く, giống nhau に cấu tạo hóa プログラムを làm り ra すと khảo えられている toàn て の cơ năng を hàm んでいる.

ブライアン・カーニハンロブ・パイクによる『UNIXプログラミング hoàn cảnh 』 の xuất bản が Bourne Shell の người khí を cao めた. これはチュートリアル hình thức でプログラミング ngôn ngữ として の シェルを giới thiệu した lúc ban đầu の thương nghiệp xuất bản bổn である.

Khởi nguyên

[Biên tập]

Bourne shell はMashey shell(Tiếng Anh bản)の thay thế として thiết kế された.

Lúc trước の thiết kế mục tiêu には, dưới の sự bính が hàm まれていた[1].

  • シェルスクリプトフィルタとして sử えるようにする.
  • Chế ngự cấu tạo変 sốを dẫn vào してプログラム の しやすさを hướng về phía trước させる.
  • Toàn て の nhập xuất lựcファイル ghi lại tửを chế ngự する.
  • シェルスクリプト nội でシグナル処 lý を chế ngự する.
  • シェルスクリプトを giải 釈する tế の văn tự liệt trường の chế hạn を triệt 廃する.
  • Văn tự liệt の クォート cơ cấu を hợp lý かつ phiếm dùng にする.
  • Version 7 でHoàn cảnh 変 sốCơ cấu が thêm vào された. これを lợi dụng して, シェルスクリプトが lúc đầu hóa khi に cấu trúc した hoàn cảnh tình báo を, わざわざパラメータを sử わずとも tử スクリプト ( tửプロセス) に độ すことができる.

Cơ năng と đặc trưng

[Biên tập]

UNIX Version 7 で の Bourne Shell の cơ năng と đặc trưng を dưới に cử げる:

  • スクリプトは, そ の ファイル danh を sử ってコマンドとして hô び ra すことができる.
  • Đối lời nói にも phi đối lời nói にも sử える.
  • コマンド đàn の đồng kỳ thật hành も không giống kỳ thật hành も khả năng.
  • Nhập xuất lực の リダイレクトとパイプラインをサポート.
  • Tổ み込みコマンド đàn を cung cấp.
  • フロー chế ngự cấu thành tử, trích dẫn ファシリティ, quan số を cung cấp.
  • Hình の ない変 số.
  • Cục sở と đại vực の 変 số スコープを cung cấp.
  • スクリプトは thật hành trước にコンパイルする tất yếu が vô い.
  • Goto cơ năng を cầm っていない.
  • バッククォートを sử ったコマンド đổi thành ( Command substitution ):`command`
  • <<を sử ったヒアドキュメント( Here documents ) cơ năng. スクリプト nội に chôn め込まれたテキストブロックを nhập lực として sử う.
  • "for ~ do ~ done"ループ. Đặc に,$*を sử って dẫn dãy số thượng をループする phương pháp.
  • "case ~ in ~ esac"による tuyển 択 cơ cấu. Chủ に dẫn số phân tích に sử われる.
  • shは, hoàn cảnh 変 số を sử ってエクスポート khả năng なキーワードパラメータや変 số を thật hiện している.
  • Nhập xuất lực chế ngự と biểu hiện マッチング の ために cường lực な cơ năng を dụng ý している.

また, Bourne Shell はエラーメッセージ の ために 2 phiên のファイル ghi lại tửを sử うという quy định を lúc ban đầu に chọn dùng したプログラムでもある. これにより,エラーメッセージをデータと chia lìa してスクリプトで chế ngự することが dễ dàng になった.

スティーブン・ボーンは tự thân がケンブリッジ đại họcで quan わっていたALGOL 68Cコンパイラ の いくつか の đặc trưng をこ の シェルに lấy り込んだ. Lệ えば, "if~then~else~fi","case~in~out~esac","for~while~do~od"といった cấu văn である. さらに Version 7 の シェルはC ngôn ngữで ghi lại されているが, ボーンはそ のソースコードをALGOL68 phong にするためにいくつか のマクロ[2]を sử っている. こ の マクロは,IOCCCが khai thúc giục される nguyên の 1つとなった ( hắn に,4.2BSDの finger コマンドも nguyên になっている )[3].

1979 năm lấy hàng に dẫn vào された cơ năng

[Biên tập]

Mấy năm の nội に AT&T は Bourne Shell を cường hóa した. Các バージョンは đối ứng する AT&T UNIX の バージョン danh で hô ばれる( chủ なバージョンは Version 7, SystemIII, SVR2, SVR3, SVR4). という の も, シェルはバージョン phiên hiệu が giao cho されていないからでもあり, khác nhau するには thật tế に cơ năng をテストしてみる tất yếu があった[4].

1979 năm lấy hàng の バージョン の Bourne shell の cơ năng ( や đặc trưng ) を dưới に kỳ す[5].

  • UNIX System III( 1981 năm )
    • testコマンドを tổ み込み.
    • # でコメントを thư き込めるようになった.
    • コロンを sử ったパラメータ の デフォルト trị へ の đổi thành: "${parameter:=word}"
  • SVR2( 1984 năm )
    • Quan số định nghĩa が khả năng となり,returnが tổ み込まれた.
    • unset,echo,typeを tổ み込み
    • ソースコードを thư き đổi えて, ALGOL68 phong でなくした.
  • SVR3( 1986 năm )
    • Hiện tại の ような "$@" の cách dùng
    • getoptsTổ み込み
    • パラメータ処 lý を cải thiện し, quan số の lại quy hô び ra しが khả năng となった.
    • 8ビットクリーン
  • SVR4( 1989 năm )
    • ジョブコントロール
    • Nhiều バイト văn tự サポート

サンがOpenSolarisの trung の Bourne Shell の đẻ ra bản をオープンソースとしてリリースすると, hắn の フリーなUNIX hệ OS hướng けにこれを nhổ trồng するHeirloomプロジェクトが bắt đầu され, lợi dụng khả năng となっている. Solaris や SVR4 の Bourne shell はオリジナル の ALGOL 68 phong の ソースコードではない.

Phê phán

[Biên tập]

Bourne shell は,C Shellと so べて thứ の ような thiếu điểm があると phê phán されてきた[6][7].

  • Đối lời nói に sử dụng する trường hợp, Bourne shell は sử いやすくない.C Shellには, ヒストリ cơ năng, エイリアス cơ năng, ジョブコントロール cơ năng などがあり, tố sớm く giản 単に thao tác できる.
  • Unixシステム の đại bộ phận はC ngôn ngữで thư かれているが, Bourne shell の ngữ pháp はC ngôn ngữ とは toàn く tựa ておらず,ALGOLに tựa ている.
  • Thứcを bình 価する cơ năng がない. 単 thuần な thức であっても phần ngoài のtest(Tiếng Anh bản)exprというユーティリティを sử わないと thức を bình 価できない.

Sau 継

[Biên tập]

Bourne shell ではなく Thompson shell から đẻ ra したC Shell(csh) は 4.1BSD で xứng bố され,BSDカーネル の “ジョブ chế ngự” cơ năng を dẫn vào した. ジョブ chế ngự は đối lời nói にプログラムを ngăn めたり, sau でそれを lại khai させる cơ năng である[8].C Shell がコマンドインタプリタとして người khí になった の はこ の cơ năng があったためである. また C Shell は C ngôn ngữ phong の ngữ pháp を chọn dùng したことにより Bourne Shell と trao đổi tính がなくなってしまった. なお, ジョブ chế ngự cơ năng は sau に Bourne shell にも dẫn vào され, そ の sau 継シェル の nhiều くにも chọn dùng されている.

Sau にデビッド・コーンが khai phát したKornShell(ksh) は, Bourne Shell と C Shell の trung gian の ようなも の で, ngữ pháp はほぼ Bourne Shell と cùng で, ジョブ chế ngự cơ năng を C Shell から lấy り nhập れた. Lúc trước の KornShell (ksh88) の cơ năng はPOSIXにおけるシェル tiêu chuẩn の cơ bàn となっている. そ の sau, ksh93 が 2000 năm にオープンソース hóa され, いくつか のLinuxディストリビューションで sử われている. ksh88 の クローン pdksh もあり,OpenBSDの デフォルトシェルとなっている.

Bash(Bourne Again Shell)は, そ の danh が kỳ す thông り Bourne Shell を cơ bản として C Shell や KornShell の cơ năng を lấy り nhập れ,GNUプロジェクトの một bộ として khai phát された.macOS,Cygwin,Nhiều く の Linuxディストリビューションでデフォルトシェルとなっている.

rcは,ベル viện nghiên cứuトム・ダフ(Tiếng Anh bản)Version 10 Unix(Tiếng Anh bản)で の sh の sau 継として khai phát した.Plan 9 from Bell Labsではデフォルトシェルとされている.Plan 9 from User Space(Tiếng Anh bản)の một bộ としてUNIXにも nhổ trồng されたことがある.

かつてCSRGの BSDリリースでも sử われた Bourne Shell には làm 権 vấn đề がまとわりついていた. そこで Kenneth Almquist がAlmquist Shellとも hô ばれる Bourne Shell の クローンを khai phát した. これはBSDライセンスで cung cấp されていて, hiện tại もBSD hệ でメモリ dung lượng が tiểu さい trường hợp などに sử われている. Linux にも nhổ trồng されDebian Almquist shellまたは dash と hô ばれている. メモリ sử dụng lượng が tiểu さいため, シェルスクリプト の thật hành が bash よりも cao tốc という đặc trưng がある.

Lợi dụng

[Biên tập]

Bourne shell は toàn て の thương dùng UNIXシステムで tiêu chuẩn とされているが, BSD hệ の システムにはC Shellで thư かれたスクリプトが đa số tồn tại する. Bourne shell の スクリプトはGNU/Linuxや hắn のUnix hệシステム thượng のbashdashでもほとんど thật hành khả năng である.

Nhiều く の Linuxシステムで,/bin/shbashへ のハードリンクまたはシンボリックリンクとなっている. しかしUbuntuなど の Linuxシステムでは hiệu suất がよいことから/bin/shdashへ の リンクとしている.

Ngữ lục

[Biên tập]
Ai も Bourne shell の ngữ pháp がどうなっているかを bổn đương には biết らない. ソースコードを điều べてみてもほとんど dịch に lập たない.— Tom Duff[9]

Tham khảo văn hiến

[Biên tập]

Chú thích

[Biên tập]
  1. ^"The A-Z of Programming Languages: Bourne shell, or sh"March 2009, Computerworld
  2. ^Bourne, Steve(12 January 1979). “mac.h - Macros used by Bourne to structure C like Algol68C”.AT&T.2006 năm ngày 9 tháng 9Duyệt lãm.
  3. ^Landon Curt Noll, Simon Cooper, Peter Seebach and Leonid A. Broukhis (2004 năm ). “The IOCCC FAQ - Q/A: How did the IOCCC get started?”.ioccc.org.2006 năm ngày 9 tháng 9Duyệt lãm.
  4. ^Bourne Shell release testing script from Sven Mascheck
  5. ^History of the Bourne Shell family
  6. ^An Introduction to the C shellbyBill Joy.
  7. ^Bezroukov, Nikolai (August 15, 2009). “Introduction to the Unix shell history”.2010 năm ngày 29 tháng 9Duyệt lãm.
  8. ^G.アンダーソン, P.アンダーソン, lạc hợp hạo một lang, đại mộc đôn hùng 訳『UNIX C SHELL フィールドガイド』パーソナルメディア kabushiki gaisha, 1987 năm ngày 15 tháng 10, 117-134 trang.ISBN4-89362-029-0.
  9. ^Tom, Duff. “Rc — The Plan 9 Shell”.2014 năm ngày 15 tháng 10Duyệt lãm.

Quan liền hạng mục

[Biên tập]

Phần ngoài リンク

[Biên tập]