Skip to content
Main menu
  • Main page
  • Discover
  • Unexpected connections
  • Topics
  • Random article
  • Search
Your library
  • Saved articles
  • Recent discoveries
  • Rabbit-hole trails
Topic areas
  • Computer Science
  • Mathematics
  • Physics
  • Engineering
  • Biology
  • Economics
  • Curiosities
WikiholeDeeper into Wikipedia
EnglishEN
  • Saved
  • History

  • Article text and media come live from Wikipedia via the official MediaWiki API and are available under the Creative Commons Attribution-ShareAlike 4.0 License; additional terms may apply. Each article links to its source and revision.
  • WikiHole is an independent project and is not affiliated with the Wikimedia Foundation.
  • How ranking works
  • All topics
  • Reading history
  • Random article
  • MediaWiki API

rc (Unix shell)

  • Article
  • Rabbit hole
  • Read
  • View history
Tools
Actions
  • Read
  • View history
General
  • Recent changes
  • Related articles
  • Random discovery
This article
Reading time
3 min
Topic
Computer Science
Quality
C-class
Created
1989
Views
257 in 14 days
Last edited
14 Oct 2026
Print/export
  • Printable version
In other projects
  • Wikidata item
From Wikipedia, the free encyclopedia
Rabbit hole:
  1. Rc (Unix shell)
Rc (Unix shell)
Command line interpreter for Version 10 Unix and Plan 9 from Bell Labs operating systems
Paradigmimperative, pipeline
Designed byTom Duff
DeveloperBell Labs
First appeared1989 (1989)
Typing disciplineweak
OSCross-platform (Version 10 Unix, Plan 9, Plan 9 from User Space)
Websitedoc.cat-v.org/plan_9/4th_edition/papers/rc

rc (for "") is the for and . It resembles the , but its syntax is somewhat simpler. It was created by , who is better known for an unusual construct ("").

run commands
command-line interpreter
Version 10 Unix
Plan 9 from Bell Labs
operating systems
Bourne shell
Tom Duff
C programming language
Duff's device
1

A port of the original rc to Unix is part of Plan 9 from User Space. A rewrite of rc for Unix-like operating systems by Byron Rakitzis is also available but includes some incompatible changes.

Rc uses C-like control structures instead of the original Bourne shell's ALGOL-like structures, except that it uses an if not construct instead of else in the original implementation but uses else in Byron Rakitzis' implementation, and has a Bourne-like for loop to iterate over lists. In rc, all variables are lists of strings, which eliminates the need for constructs like "$@". Variables are not re-split when expanded. The language is described in Duff's paper.1

Loading the rest of the article…

Recent changes

Rabbit hole

Where Rc (Unix shell) leads. Every connection below has a source: a link in this article, a shared Wikipedia category, or CirrusSearch text similarity. Articles already on your trail are left out.

Created
20 Jan 2003
History
227 edits
148 contributors
1 edit in the last 30 days
Last edited
14 Oct 2026

227 revisions in total · 148 contributors · +106 / 0 bytes across 1 edits by 1 contributor in the last 30 days

  1. 14 Oct 2026, 23:51 UTCTemporary accountRepaired broken citation which featured bare URL+106diff
  2. 10 Oct 2026, 17:11 UTCRofrajamReplaced 1 bare URLs by {{Cite web}}−80diff
  3. 4 Oct 2026, 12:56 UTCMediaKylemAdded 1 {{Bare URL inline}} tag(s) using a script. For other recently-tagged pages with bare URLs, see :Category:Articles with bare URLs for citations from October 2026+38diff
  4. 9 Jun 2026, 08:57 UTCOliwerAdded a link to rc23, an active fork of rc+60diff
  5. 10 May 2026, 22:04 UTCIdiosyncraticLawyermRemoving illicit template parameter−3diff
  6. 26 Feb 2026, 01:41 UTCTemporary account§ top Fixed typo and grammer+1diff
  7. 3 Jan 2026, 23:59 UTCXose.vazquez§ External links−17diff
  8. 3 Jan 2026, 23:09 UTCXose.vazquez§ External links−10diff

View full revision history

Contents
  • (Top)
  • Influences
  • Examples
  • References
  • External links
  • Recent changes
  • Rabbit hole
Contents
Contents6 sections
  • (Top)
  • Influences
  • es
  • Examples
  • References
  • External links
  • Recent changes
  • Rabbit hole
General
  • Recent changes
  • Related articles
  • Random discovery
This article
Reading time
3 min
Topic
Computer Science
Quality
C-class
Created
1989
Views
257 in 14 days
Created
20 Jan 2003
History
227 edits
148 contributors
1 edit in the last 30 days
Last edited
14 Oct 2026

Key concepts

  • Run commands1
  • Command-line interpreter1
  • Version 10 Unix1
  • Plan 9 from Bell Labs1
  • Operating system1
  • Bourne shell1
  • Tom Duff1
  • C (programming language)1
  • Duff's device1
  • Plan 9 from User Space1

The articles this one links to most, weighted towards the introduction.

Print/export
  • Printable version
In other projects
  • Wikidata item
Study aids for Rc (Unix shell)

Terminology

rc
rc (for "run commands") is the command-line interpreter for Version 10 Unix and Plan 9 from Bell Labs operating systems.

Terms the article defines in bold, quoted in context.

Categories:
  • Unix shells
  • Free system software
  • Inferno (operating system)
  • Plan 9 from Bell Labs
  • Procedural programming languages
  • Programming languages created in 1989
  • Scripting languages
  • Text-oriented programming languages

312 words · 11 references · revision 1380303918 · CC BY-SA 4.0

Influences

es

es (for "extensible shell") is an open source, command line interpreter developed by Rakitzis and Paul Haahr2 that uses a scripting language syntax influenced by the rc shell.34 It was originally based on code from Byron Rakitzis's clone of rc for Unix.56

Extensible shell is intended to provide a fully functional programming language as a Unix shell.7 It does so by introducing "program fragments" in braces as a new datatype, lexical scoping via let, and some more minor improvements. The bulk of es development occurred in the early 1990s, after the shell was introduced at the Winter 1993 USENIX conference in San Diego.8 Official releases appear to have ceased after 0.9-beta-1 in 1997,9 and es lacks features present in more popular shells, such as zsh and bash.10 A public domain fork of es is active as of 2019.11

Examples

The Bourne shell script:

if [ hello = "$1"  ]; 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

is expressed in rc as:

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 also supports more dynamic piping:

a |[2] b    # pipe only standard error of a to b — equivalent to '{ a 2>&1 >&3 3>&- | b; } 3>&1' in Bourne shell[1]: Advanced I/O Redirection 
a <{b} <{c} # becomes a {named pipe with standard output of b} {named pipe with standard output of c},
            # better known as "process substitution"[1]: Pipeline Branching

References

  1. 1Duff, Tom (1990). ""Rc — The Plan 9 Shell"". cat-v. Retrieved 2024-01-26.
  2. 2Fischer, Manfred M. (13 December 1996). Spatial Analytical Perspectives on GIS. CRC Press. ISBN 9780748403400.
  3. 3"Ubuntu Manpage: es - extensible shell". Manpages.ubuntu.com. 1992-03-05. Archived from the original on 2014-02-24. Retrieved 2012-08-24.
  4. 4"Extensible Shell". FOLDOC. Retrieved 2012-08-24.
  5. 5"Shells Available for Linux". LUV. Archived from the original on 2012-03-22. Retrieved 2012-08-24.
  6. 6Jones, Tim. "Evolution of shells in Linux". IBM. Retrieved 14 March 2014.
  7. 7"Linux Journal 12: What's GNU". Archived from on 2013-01-17. Retrieved 2012-08-24.

External links

  • rc(1) - Plan 9 manual page
  • Byron Rakitzis' rewrite for Unix on GitHub (article Archived 2013-10-05 at the Wayback Machine)
  • es Official website
  • rc23 A fork of Byron's rc
the original
  • 8Es: A shell with higher-order functions by Byron Rakitzis, NetApp, Inc, and Paul Haahr, Adobe Systems Incorporated; Archived at Archive.Org.
  • 9"Archived copy". Retrieved 2026-10-14.
  • 10"UNIX shell differences". Faqs.org. Retrieved 2012-08-24.
  • 11Haggerty, James (13 March 2020). "wryun/es-shell: a shell with higher-order functions". GitHub.
  • Related articles are unavailable right now.

    Wikipedia is rate limiting us right now. Try again in a minute.