rc es el shell de Plan 9 from Bell Labs y UNIX Versión 10.
Similar a prácticamente todo shell, rc puede ser utilizado interactivamente ingresando en la consola las órdenes a ejecutar, confirmándolas con enter, o como intérprete para programas, cuando estas se colocan en un archivo de texto, utilizando el shebang: #!/bin/rc, como primera línea del mismo.
Sintaxis y semántica
De forma similar a lenguajes tradicionales de programación, y a diferencia de lenguajes de procesamiento de macros, como make o sh, por lo cual las expresiones son evaluadas directamente una única vez, a menos que justamente se utilice eval.
Una consecuencia inmediata de esto, es que por ejemplo al asignar texto a una variable, no ocurra separación en palabras al utilizarla:
% fn a{echo $#*}; b='hola mundo'; a $b
1
Mientras que en sh, tras la evaluación de la variable, ocurre una segunda etapa de separación por palabras y de globbing de archivos (se buscan aquellos archivos que coincidan con los patrones especificados en cada una de las palabras de la variable). Si no se deseara este comportamiento, se podría colocar la variable entre comillas: "$b".
$ a(){ echo $#;}; b='hola mundo'; a $b
2
Implementaciones
Hay una impelementación original para Plan 9 por Tom Duff.[1] Y una reimplementación para UNIX por Byron Rakitzis,[2] que presenta incompatilidades menores en sitaxis como $^var en lugar de $"var, y else en lugar de if not,[3] pero provee soporte a readline para la edición interactiva de líneas.
Referencias