rc

Source: Wikipedia, the free encyclopedia.
rc
Version 10 Unix, Plan 9, Plan 9 from User Space)
Websitedoc.cat-v.org/plan_9/4th_edition/papers/rc
Dialects
Byron's rc
Influenced by
Bourne shell
Influenced
es, The Inferno shell.
An rc session

rc (for "

Version 10 Unix and Plan 9 from Bell Labs operating systems. It resembles the Bourne shell, but its syntax is somewhat simpler. It was created by Tom Duff, who is better known for an unusual C programming language construct ("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

$@". Variables are not re-split when expanded. The language is described in Duff's paper.[1]

Influences

es

es (for "extensible shell") is an

rc for Unix.[5][6]

Extensible shell is intended to provide a fully

zsh and bash.[10] A public domain fork of es is active as of 2019.[11]

Examples

The Bourne shell script:

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

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 '3>&2 2>&1 >&3 | b' in Bourne shell[1]
: Advanced I/O Redirection  a <>b # opens file b as a's
standard output
a <{b} <{c} # becomes a {standard output of b} {standard output of c}, # better known as "
process substitution"[1]: Pipeline Branching 

References

  1. ^ a b c d Duff, Tom (1990). ""Rc — The Plan 9 Shell"". cat-v. Retrieved 2024-01-26.
  2. .
  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. ^ "Extensible Shell". FOLDOC. Retrieved 2012-08-24.
  5. ^ "Shells Available for Linux". LUV. Retrieved 2012-08-24.
  6. ^ Jones, Tim. "Evolution of shells in Linux". IBM. Retrieved 14 March 2014.
  7. ^ "Linux Journal 12: What's GNU". Archived from the original on 2013-01-17. Retrieved 2012-08-24.
  8. Adobe Systems Incorporated; Archived at Archive.Org
    .
  9. ^ [1]
  10. ^ "UNIX shell differences". Faqs.org. Retrieved 2012-08-24.
  11. ^ Haggerty, James (13 March 2020). "wryun/es-shell: a shell with higher-order functions". GitHub.

External links

This page is based on the copyrighted Wikipedia article: Rc. Articles is available under the CC BY-SA 3.0 license; additional terms may apply.Privacy Policy