rc
This article needs additional citations for verification. (March 2014) |
Version 10 Unix, Plan 9, Plan 9 from User Space) | |
---|---|
Website | doc |
Dialects | |
Byron's rc | |
Influenced by | |
Bourne shell | |
Influenced | |
es, The Inferno shell. |
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
Extensible shell is intended to provide a fully
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 onlystandard 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'sstandard outputa <{b} <{c} # becomes a {standard output of b} {standard output of c}, # better known as "process substitution"[1]: Pipeline Branching
References
- ^ a b c d Duff, Tom (1990). ""Rc — The Plan 9 Shell"". cat-v. Retrieved 2024-01-26.
- ISBN 9780748403400.
- ^ "Ubuntu Manpage: es - extensible shell". Manpages.ubuntu.com. 1992-03-05. Archived from the original on 2014-02-24. Retrieved 2012-08-24.
- ^ "Extensible Shell". FOLDOC. Retrieved 2012-08-24.
- ^ "Shells Available for Linux". LUV. Retrieved 2012-08-24.
- ^ Jones, Tim. "Evolution of shells in Linux". IBM. Retrieved 14 March 2014.
- ^ "Linux Journal 12: What's GNU". Archived from the original on 2013-01-17. Retrieved 2012-08-24.
- Adobe Systems Incorporated; Archived at Archive.Org.
- ^ [1]
- ^ "UNIX shell differences". Faqs.org. Retrieved 2012-08-24.
- ^ Haggerty, James (13 March 2020). "wryun/es-shell: a shell with higher-order functions". GitHub.
External links
- - Plan 9 manual page.
- Plan 9 from User Space - Includes rc and other Plan 9 tools for Linux, Mac OS X and other Unix-like systems.
- Byron Rakitzis' rewrite for Unix (article Archived 2013-10-05 at the Wayback Machine)
- es Official website