Este artículo necesita citas adicionales para su verificación . ( marzo de 2014 ) |
Paradigma | imperativo , canalización |
---|---|
Diseñado por | Tom Duff |
Revelador | Laboratorios Bell |
Apareció por primera vez | 1989 ( 1989 ) |
Disciplina de mecanografía | débil |
Sistema operativo | Multiplataforma ( versión 10 Unix , Plan 9 , Plan 9 desde User Space ) |
Sitio web | doc.cat-v.org/plan_9/4th_edition/papers/rc |
Dialectos | |
El RC de Byron | |
Influenciado por | |
Concha Bourne | |
Influenciado | |
es, la concha del infierno |
rc (de " run commands ") es el intérprete de línea de comandos para los sistemas operativos Unix Versión 10 y Plan 9 de Bell Labs . Se parece al shell Bourne , pero su sintaxis es algo más simple. Fue creado por Tom Duff , quien es más conocido por una construcción inusual del lenguaje de programación C (" dispositivo de Duff "). [1]
Una versión del rc original para Unix es parte de Plan 9 de User Space . También está disponible una reescritura del rc para sistemas operativos tipo Unix realizada por Byron Rakitzis, pero incluye algunos cambios incompatibles.
Rc utiliza estructuras de control similares a C en lugar de las estructuras similares a ALGOL del Bourne Shell original , excepto que utiliza un if not
constructo en lugar de else
, y tiene un bucle similar al de Bourne for
para iterar sobre listas. En rc, todas las variables son listas de cadenas, lo que elimina la necesidad de constructos como " $@
". Las variables no se vuelven a dividir cuando se expanden. El lenguaje se describe en el artículo de Duff. [1]
es (por "extensible shell") es un intérprete de línea de comandos de código abierto desarrollado por Rakitzis y Paul Haahr [2] que utiliza una sintaxis de lenguaje de scripting influenciada por el shell rc. [3] [4] Originalmente se basaba en el código del clon de rc para Unix de Byron Rakitzis. [5] [6]
El shell extensible tiene como objetivo proporcionar un lenguaje de programación completamente funcional como un shell Unix . [7] Lo hace mediante la introducción de "fragmentos de programa" entre llaves como un nuevo tipo de datos, alcance léxico a través de let y algunas mejoras menores más. La mayor parte del desarrollo de es se produjo a principios de la década de 1990, después de que el shell se presentara en la conferencia USENIX de invierno de 1993 en San Diego . [8] Los lanzamientos oficiales parecen haber cesado después de 0.9-beta-1 en 1997, [9] y es carece de características presentes en shells más populares, como zsh y bash . [10] Una bifurcación de dominio público de está activa a partir de 2019. [ 11]es
[actualizar]
El script de shell de Bourne:
si [ " $1 " = "hola" ] ; entonces echo hola, mundo de lo contrario caso " $2 " en 1 ) echo $# 'hey' "jude's" $3 ;; 2 ) echo ` fecha ` : $* : : " $@ " : ;; * ) echo por qué no 1 > & 2 esac para i en a b c ; hacer echo $i hecho fi
se expresa en rc como:
si(~$1 hola) eco hola mundosi no { cambiar($2) { caso 1 eco $#* 'hola' 'jude''s'^$3 caso 2 eco `{fecha} :$"*: :$*: caso * eco por qué no >[1=2] } para(i en abc) eco $i}
Rc también admite tuberías más dinámicas:
a |[2] b # solo envía el error estándar de a a b — equivalente a '3>&2 2>&1 >&3 | b' en Bourne Shell [1] : Redirección de E/S avanzada a <>b # abre el archivo b como entrada y salida estándar de a a <{b} <{c} # se convierte en a {salida estándar de b} {salida estándar de c}, # mejor conocida como " sustitución de proceso " [1] : Ramificación de canalización