Rc (シェル)

rc（"run commands"）は、Version 10 UnixとPlan 9のためのコマンドラインインターフェースである。rcはBourne shellに似ているが、その構文はより簡潔なものになっている。また、rcはトム・ダフによって作られた。彼はDuff's deviceと呼ばれるC言語の構築で有名である。
オリジナルなrcのUNIXに対するポートは、Plan 9 form User Spaceの一部としてなされた。rcのUNIX系OSへのリライトはバイロン・ラキツィスによるものも利用可能だが、それはいくつかの互換性のない変更を含んでいる。
rcは、オリジナルのBourne shellがALGOL風の構造を持つのに対して、C言語のような構造を持つ。ただし、"codice_1"構造を"codice_2"の代わりに使い、リストの繰り返しにBourne shell風の"codice_3"ループを持っている。rcにおいては"codice_4"のような構造を排除する必要のために、すべての変数は文のリストとなっている。変数は展開されるときに再分割されない。この言語はダフの論文に記載されている。
影響.
es.
es（"extensible shell"）は、ラキツィスとポール・ハウァーによって開発された、オープンソースのコマンドラインインターフェースで、rcシェルに影響を受けたスクリプト言語の構文を利用している。esは、ラツキィスによるUNIXのためのrcのクローン
のコードをオリジナルのベースにしている。
es（＝"extensible shell"）は、UNIXシェルとして、完全な関数型プログラミング言語を提供することを意図している。esの大部分の開発は1990年代の初頭に始まり、1993年冬のサンディエゴにおけるUSENIXの会議において紹介された後、公式の
リリースは1997年の0.9-beta-1以後やめられた。また、esは、zshやbashなどのポピュラーなシェルに比べて機能が欠けている。のパブリックドメインな派生版は2019年現在でも開発されている。
例.
Bourne shellスクリプト
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 hello)
 echo hello, world
if not {
 switch($2) {
 case 1
 echo $#* 'hey' 'jude"s'^$3
 case 2
 echo `{date} :$"*: :$*:
 case *
 echo why not >[1=2]
 for(i in a b c)
 echo $i
Rcはまた、より動的なパイプをサポートしている。
 a |[2] b "# aの標準エラー出力のみbへパイプする — Bourne shellにおける'3>&2 2>&1 >&3 | b'と等価である"
 a <>b "# aの標準入力および標準出力としてファイルbを開く"
 a <{b} <{c} "# a {bの標準出力} {cの標準出力}となる。""という名前でよく知られている"