| パラダイム | 命令形、パイプライン |
|---|---|
| デザイン: | トム・ダフ |
| 開発者 | ベル研究所 |
| 初登場 | 1989年 |
| タイピングの規律 | 弱い |
| OS | クロスプラットフォーム(バージョン 10 Unix、Plan 9、ユーザー スペースからの Plan 9 ) |
| Webサイト | doc.cat-v.org/plan_9/4th_edition/papers/rc |
| 方言 | |
| バイロンのRC | |
| 影響を受けた | |
| ボーンシェル | |
| 影響を受けた | |
| es、インフェルノシェル | |
.png/500px-Plan_9_from_Bell_Labs_(process_management).png)
rc (" run command ") は、ベル研究所のオペレーティングシステムのバージョン 10 UnixおよびPlan 9用のコマンドラインインタープリタです。Bourneシェルに似ていますが、構文はやや単純です。これは、 C プログラミング言語の珍しい構造 (" Duff's device ")でよく知られているTom Duffによって作成されました。 [1]
オリジナルの rc の Unix への移植は、User Space の Plan 9の一部です。Byron Rakitzis による Unix 系オペレーティング システム用の rc の書き直しも利用可能ですが、互換性のない変更がいくつか含まれています。
rc は、オリジナルの Bourne シェルのALGOLのような構造ではなく、C のような制御構造を使用します。ただし、if notの代わりに 構造を使用しelse、forリストを反復処理するための Bourne のようなループがあります。rc では、すべての変数は文字列のリストであるため、 " " のような構造は必要ありません$@。変数は展開されても再分割されません。この言語については、Duff の論文で説明されています。[1]
影響
es
es (「拡張可能シェル」の略) は、Rakitzis と Paul Haahr [2]によって開発されたオープンソースのコマンドラインインタープリタであり、rc シェル[3]に影響されたスクリプト言語構文を使用しています。[4]もともとは Byron Rakitzis のUnix 用rc クローンのコードに基づいています。 [5] [6]
拡張可能シェルは、Unixシェルとして完全に機能する プログラミング言語を提供することを目的としている。[7]これは、中括弧内の「プログラムフラグメント」を新しいデータ型として導入し、letによる語彙スコープ、およびその他のいくつかの小さな改善によって実現される。 esの開発の大部分は、シェルが1993年冬にサンディエゴで開催されたUSENIXカンファレンスで発表された後、1990年代初頭に行われた。[8] 公式リリースは1997年の0.9-beta-1以降停止したようで、[9] esにはzshやbashなどのより一般的なシェルにある機能が欠けている。[10]のパブリックドメインフォークは2019年現在アクティブである。[11]es[アップデート]
例
Bourne シェル スクリプト:
if [ " $1 " = "hello" ] ; then echo hello, world
else case " $2 " in 1 ) echo $# 'hey' "jude's" $3 ;; 2 ) echo ` date ` : $* : : " $@ " : ;; * ) echo why not 1 > & 2 esac for i in a b c ; do echo $i done fi
rc では次のように表現されます:
if(~ $1 こんにちは)
エコー、こんにちは、世界
そうでない場合{
スイッチ($2) {
ケース1
echo $#* 'hey' 'jude''s'^$3
ケース2
echo `{date} :$"*: :$*:
場合 *
エコーなぜダメなの? >[1=2]
}
for(i は abc に含まれる)
$iをエコーする
}
Rc はより動的なパイピングもサポートします:
a |[2] b # a の標準エラーのみを b にパイプします。Bourneシェルの '3>&2 2>&1 >&3 | b' と同等です[1] : 高度な I/O リダイレクト a <>b # ファイル b を a の標準入力と標準出力として開きます a <{b} <{c} # a {b の標準出力} {c の標準出力} になります。 #よく知られているのは「プロセス置換」です[1] : パイプライン分岐
参考文献
- ^ abcd Duff, Tom (1990). 「Rc — The Plan 9 Shell」. cat-v . 2024年1月26日閲覧。
- ^ フィッシャー、マンフレッド M. (1996 年 12 月 13 日)。GIS の空間分析的視点。CRC プレス。ISBN 9780748403400。
- ^ 「Ubuntu Manpage: es - extensible shell」。Manpages.ubuntu.com。1992-03-05。2014-02-24にオリジナルからアーカイブ。2012-08-24に取得。
- ^ 「Extensible Shell」. FOLDOC . 2012年8月24日閲覧。
- ^ 「Linux で利用可能なシェル」 LUV 。 2012 年 8 月 24 日閲覧。
- ^ Jones, Tim. 「Linux におけるシェルの進化」 IBM . 2014 年3 月 14 日閲覧。
- ^ 「Linux Journal 12: What's GNU」。2013年1月17日時点のオリジナルよりアーカイブ。2012年8月24日閲覧。
- ^ Es: 高階関数を備えたシェル、Byron Rakitzis、NetApp、Inc、および Paul Haahr、Adobe Systems Incorporated著、Archive.Org にアーカイブされています。
- ^ [1]
- ^ 「UNIX シェルの違い」。 Faqs.org 。 2012 年 8 月 24 日閲覧。
- ^ Haggerty, James (2020年3月13日). 「wryun/es-shell: 高階関数を備えたシェル」. GitHub .
外部リンク
- - Plan 9 マニュアルページ
- ユーザースペースからの Plan 9 - Linux、Mac OS X、その他の Unix 系システム用の rc およびその他の Plan 9 ツールが含まれています
- Byron Rakitzis による Unix 向けの書き直し (記事は 2013-10-05 にWayback Machineでアーカイブされています)
- 公式サイト
