Este es el comando rcplan9 que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
rc, cd, eval, exec, exit, flag, rfork, shift, wait, whatis,., ~ - lenguaje de comandos
SINOPSIS
rc [ -srdiIlxepvV ] [ -c comando ] [ presentar [ arg ... ]]
DESCRIPCIÓN
Rc es el caparazón del Plan 9. Ejecuta líneas de comando leídas desde una terminal o un archivo o, con
la -c bandera, desde rc's lista de argumentos.
Comando Líneas
Una línea de comando es una secuencia de comandos, separados por símbolos y punto y coma (& or ;),
terminado por una nueva línea. Los comandos se ejecutan en secuencia de izquierda a derecha. Rc
no espera un comando seguido de & para terminar de ejecutar antes de iniciar el
siguiente comando. Siempre que un comando seguido de & se ejecuta, su ID de proceso es
asignado a la rc variable $ apid. Siempre que un comando No seguido por & sale o es
terminado, el rc variable $ estado obtiene el mensaje de espera del proceso (ver esperar(3)); va a
ser la cadena nula si el comando fue exitoso.
Una línea de comando larga puede continuar en las líneas siguientes escribiendo una barra invertida (\)
seguido de una nueva línea. Esta secuencia se trata como si fuera un espacio en blanco. La barra invertida es
no de otra manera un carácter especial.
Un signo de número (#) y los siguientes caracteres hasta (pero sin incluir) la siguiente nueva línea
se ignoran, excepto entre comillas.
Fácil Comandos
Un comando simple es una secuencia de argumentos intercalados con redirecciones de E / S. Si el
El primer argumento es el nombre de un rc función o de uno de rc's comandos incorporados, es
ejecutado por rc. De lo contrario, si el nombre comienza con una barra (/), debe ser el nombre de la ruta
del programa a ejecutar. Los nombres que no contienen una barra inicial se buscan en un
lista de nombres de directorio almacenados en $ ruta. El primer archivo ejecutable del nombre dado
encontrado en un directorio en $ ruta es el programa a ejecutar. Para ser ejecutable, el usuario
debe tener permiso de ejecución (ver stat(3)) y el archivo debe ser ejecutable
binario para el tipo de CPU de la máquina actual, o un script de shell. Los scripts de shell comienzan con un
línea que contiene el nombre de ruta completo de un shell (generalmente / bin / rc), precedido por
La primera palabra de un comando simple no puede ser una palabra clave a menos que esté entre comillas o de otra manera
disfrazado. Las palabras clave son
por un tiempo si no cambia fn ~! @
Argumentos y las Variables
Se pueden utilizar varias construcciones donde rc's la sintaxis requiere que aparezca un argumento.
En muchos casos, el valor de una construcción será una lista de argumentos en lugar de un solo
cadena.
El tipo de argumento más simple es la palabra sin comillas: una secuencia de uno o más caracteres
ninguno de los cuales es un espacio en blanco, tabulación, nueva línea o cualquiera de los siguientes:
#; & | ^ $ = `'{} () <>
Una palabra sin comillas que contiene alguno de los caracteres. * ? [ es un patrón para combinar
contra los nombres de archivo. El personaje * coincide con cualquier secuencia de caracteres, ? coincide con cualquiera
carácter único, y [clase] coincide con cualquier carácter en el clase. Si el primer personaje
of clase is ~, la clase se complementa. los clase también puede contener pares de caracteres
separado por -, que representa todos los caracteres léxicamente entre los dos. El personaje /
debe aparecer explícitamente en un patrón, al igual que el primer carácter del nombre de la ruta
componentes . y las ... Un patrón se reemplaza por una lista de argumentos, uno para cada ruta
nombre coincidente, excepto que un patrón que no coincide con ningún nombre no se reemplaza por la lista vacía,
sino que se defiende a sí mismo. La coincidencia de patrones se realiza después de todas las demás operaciones. Por lo tanto,
x=/ Tmp echo $ x ^ / *. c
cerillas / Tmp /*.C, en lugar de coincidir /*.C y luego prefijando / Tmp.
Una palabra entre comillas es una secuencia de caracteres rodeada de comillas simples ('). Una sola cita
se representa en una palabra citada por un par de comillas ('').
Cada uno de los siguientes es un argumento.
(argumentos)
El valor de una secuencia de argumentos entre paréntesis es una lista que comprende
los miembros de cada elemento de la secuencia. Las listas de argumentos no son recursivas
estructura, aunque su sintaxis puede sugerirlo. Los siguientes son enteramente
equivalente:
echo hola a todos
((eco) (hola) a todos)
$argumento
$argumento(subíndice)
El elemento argumento después de la $ es el nombre de una variable cuyo valor se sustituye.
Son posibles múltiples niveles de direccionamiento indirecto, pero de utilidad cuestionable. Variable
los valores son listas de cadenas. Si argumento es un numero n, el valor es el nth
elemento de $*, a no ser que $* no tiene n elementos, en cuyo caso el valor está vacío.
If argumento va seguido de una lista de subíndices entre paréntesis, el valor
sustituido es una lista compuesta por los elementos solicitados (origen 1). los
los paréntesis deben seguir al nombre de la variable sin espacios. Los subíndices también pueden tomar
la forma m-n or m- para indicar una secuencia de elementos. Asignaciones a variables
se describen a continuación.
$#argumento
El valor es el número de elementos de la variable nombrada. Una variable nunca
asignado un valor tiene cero elementos.
$"argumento
El valor es una sola cadena que contiene los componentes de la variable nombrada
separados por espacios. Una variable con elementos cero produce la cadena vacía.
`{comando}
rc ejecuta el comando y lee su salida estándar, dividiéndola en una lista de
argumentos, usando caracteres en $ si como separadores. Si $ si no está configurado de otra manera,
su valor es ' \Tennesse'.
<{comando}
>{comando}
El elemento comando se ejecuta de forma asincrónica con su salida estándar o entrada estándar
conectado a una tubería. El valor del argumento es el nombre de un archivo que hace referencia a
el otro extremo de la tubería. Esto permite la construcción de tuberías no lineales.
Por ejemplo, lo siguiente ejecuta dos comandos los ancianos y las new y utiliza cmp comparar
sus salidas
cmp <{antiguo} <{nuevo}
argumento^argumento
El elemento ^ El operador concatena sus dos operandos. Si los dos operandos tienen el mismo
número de componentes, se concatenan por pares. Si no, entonces un operando
debe tener un componente y el otro no debe estar vacío, y la concatenación es
distributivo.
Gratis Caretas
En la mayoría de circunstancias, rc insertará el ^ operador automáticamente entre palabras que son
no separados por espacios en blanco. Siempre que uno de $ ' ` sigue una palabra entre comillas o no o
una palabra sin comillas sigue a una palabra entre comillas sin espacios en blanco ni tabulaciones, una ^ se inserta
entre los dos. Si una palabra sin comillas sigue inmediatamente a $ y contiene un personaje
que no sea alfanumérico, subrayado o *, ^ se inserta antes de la primera de tales
personaje. Por lo tanto
cc - $ banderas $ stem.c
es equivalente a
cc - ^ $ banderas $ raíz ^ .c
I / O redirecciones
La secuencia >presentar redirige el archivo de salida estándar (descriptor de archivo 1, normalmente el
terminal) al nombre presentar; >>presentar agrega salida estándar al archivo. El estandar
archivo de entrada (descriptor de archivo 0, también normalmente el terminal) puede ser redirigido desde un archivo
por la secuencia <presentar, o desde un "documento aquí" en línea por la secuencia <<eof-marcador.
El contenido de un documento aquí son líneas de texto tomadas del flujo de entrada del comando hacia arriba
a una línea que no contiene nada más que el eof-marcador, que puede ser cotizado o no cotizado
palabra. Si eof-marcador no está entre comillas, nombres de variable de la forma $palabra clave tienen sus valores
sustituido de rc's medio ambiente. Si $palabra clave va seguido de un signo de intercalación (^), el signo de intercalación es
eliminado. Si eof-marcador se cotiza, no se produce ninguna sustitución.
Las redirecciones se pueden aplicar a un descriptor de archivo que no sea la entrada o salida estándar por
calificando el operador de redirección con un número entre corchetes. Por ejemplo, el
La salida de diagnóstico (descriptor de archivo 2) se puede redirigir escribiendo cc basura c > [2] basura.
Un descriptor de archivo puede redirigirse a un descriptor ya abierto escribiendo >[fd0=fd1] or
<[fd0=fd1]. Fd1 es un descriptor de archivo previamente abierto y fd0 se convierte en una nueva copia (en el
sentido de dup(3)) de la misma. Un descriptor de archivo puede cerrarse escribiendo >[fd0=] or <[fd0=].
Las redirecciones se ejecutan de izquierda a derecha. Por lo tanto, cc basura c > / dev / null > [2 = 1] y las
cc basura c > [2 = 1] > / dev / null tienen diferentes efectos: el primero pone la salida estándar en
/ dev / null y luego coloca la salida de diagnóstico en el mismo lugar, donde el segundo dirige
salida de diagnóstico al terminal y envía salida estándar a / dev / null.
Compuesto Comandos
Un par de comandos separados por un operador de tubería (|) es un comando. La salida estándar de
el comando de la izquierda se envía a través de una tubería a la entrada estándar del comando de la derecha. los
El operador de tubería puede estar decorado para usar diferentes descriptores de archivo. |[fd] conecta el
final de salida de la tubería al descriptor de archivo fd en lugar de 1. |[fd0=fd1] conecta la salida a
fd1 del comando izquierdo y la entrada a fd0 del comando correcto.
Un par de comandos separados por && or || es un comando. En cualquier caso, el comando de la izquierda
se ejecuta y se examina su estado de salida. Si el operador es && el comando correcto es
ejecutado si el estado del comando izquierdo es nulo. || hace que se ejecute el comando correcto
si el estado del comando izquierdo no es nulo.
El estado de salida de un comando se puede invertir (no nulo se cambia a nulo, nulo se cambia
a no nulo) precediéndolo con un !.
El elemento | El operador tiene la precedencia más alta y es asociativo a la izquierda (es decir, se une más
izquierda que derecha). ! tiene precedencia intermedia, y && y las || tener el mas bajo
precedencia.
El unario @ operador, con precedencia igual a !, hace que su operando se ejecute en un
subshell.
Cada uno de los siguientes es un comando.
if ( lista ) comando
A lista es una secuencia de comandos, separados por &, ;o nueva línea. Se ejecuta
y si su estado de salida es nulo, el comando es ejecutado.
if No comando
El comando inmediatamente anterior debe haber sido if (lista) comando. Si es
condición era distinta de cero, la comando es ejecutado.
por(nombre in argumentos) comando
por(nombre ) comando
El elemento comando se ejecuta una vez para cada argumento con ese argumento asignado a nombre .
Si se omite la lista de argumentos, $* se utiliza.
tiempo (lista) comando
El elemento lista se ejecuta repetidamente hasta que su estado de salida no sea nulo. Cada vez que
devuelve un estado nulo, el comando es ejecutado. Un vacío lista se toma para dar nulo
de estado.
cambiar(argumento){lista}
El elemento lista se buscan comandos simples que comiencen con la palabra case. (La búsqueda
está sólo en el "nivel superior" de la lista. Es decir, cases en construcciones anidadas son
extraviado.) Argumento se compara con cada palabra que sigue case utilizando el
algoritmo de coincidencia de patrones descrito anteriormente, excepto que / y los primeros personajes
of . y las .. no necesita coincidir explícitamente. Cuando se encuentra una coincidencia, los comandos en
la lista se ejecuta hasta el siguiente case comando (en el nivel superior) o
la llave de cierre.
{lista}
Las llaves sirven para alterar la agrupación de comandos implícitos en las prioridades del operador. los
cuerpo es una secuencia de comandos separados por &, ;o nueva línea.
fn nombre {lista}
fn nombre
La primera forma define una función con el dado nombre . Posteriormente, siempre que un
comando cuyo primer argumento es nombre se encuentra, el valor actual de la
el resto de la lista de argumentos del comando se asignará a $*, después de guardar su
valor actual, y rc ejecutará el lista. La segunda forma elimina nombre 's
definición de función.
fn nota{lista}
fn nota
Se llamará a una función con un nombre especial cuando rc recibe un correspondiente
Nota; ver notificar(3). Los nombres de nota válidos (y notas correspondientes) son suspiro
(colgar), firma (interrumpir), señalrm (alarma), o sigfpe (trampa de punto flotante).
Por defecto rc sale al recibir cualquier señal, excepto cuando se ejecuta interactivamente, en
cuyo caso se interrumpe y se cierra normalmente causa rc para detener lo que sea que esté haciendo y
empieza a leer un nuevo comando. La segunda forma causa rc para manejar una señal en el
manera predeterminada. Rc reconoce una nota artificial, sigesalir, que ocurre cuando rc is
a punto de terminar de ejecutar.
nombre =argumento comando
Cualquier comando puede ir precedido de una secuencia de asignaciones intercaladas con
redirecciones. Las asignaciones permanecen vigentes hasta el final del comando,
a menos que el comando esté vacío (es decir, las asignaciones son independientes), en cuyo caso
son efectivos hasta que sean rescindidos por asignaciones posteriores.
Incorporado Comandos
Estos comandos son ejecutados internamente por rc, generalmente porque su ejecución cambia o
depende rcestado interno.
. presentar ...
Ejecutar comandos desde presentar. $* se establece para la duración del resto del
siguiente lista de argumentos presentar. Archive se busca para usar $ ruta.
incorporado comando ...
Implementación comando como de costumbre, excepto que cualquier función llamada comando se ignora a favor
del significado incorporado.
cd [dir]
Cambiar el directorio actual a dir. El argumento predeterminado es $ casa. dir is
buscado en cada uno de los directorios mencionados en $ cdpath.
eval [arg ...]
Los argumentos se concatenan separados por espacios en una sola cadena, se leen como
entrada a rcy ejecutado.
ejecutivo [comando ...]
Esta instancia de rc se reemplaza a sí mismo con el dado (no incorporado) comando.
bandera f [+ -]
Cualquiera de los conjuntos (+), claro (-), o prueba (ni + ni -) la bandera f, donde el f es un
carácter único, uno de los indicadores de la línea de comandos (consulte Invocación, a continuación).
salida [estado]
Salida con el estado de salida indicado. Si no se da ninguno, el valor actual de $ estado is
usado.
horquilla [nNeEsfFm]
Conviértase en un nuevo grupo de procesos utilizando rforkbanderas) dónde banderas se compone de
bit a bit O del horquilla banderas especificadas por las letras de opción (ver tenedor(2)). Si no
banderas se dan, por defecto a nos hace. banderas y sus significados son: n is
RFNOMBREG; N is RFCNAMEG; e is RFENVG; E is RFCENVG; s is RFNOTEG; f is RFFDG; F is
RFCFDG; y m is RFNOMNT.
Turno [n]
Eliminar el primero n (predeterminado 1) elementos de $*.
esperar [pid]
Espere el proceso con el dado pid salir. Si no pid se da, todo
Se esperan procesos sobresalientes.
que es nombre ...
Imprime el valor de cada nombre en una forma adecuada para la entrada a rc. La salida es una
asignación a cualquier variable, la definición de cualquier función, una llamada a incorporado para
cualquier comando incorporado, o el nombre de ruta completo de cualquier archivo ejecutable.
~ sujeto patrón ...
El elemento sujeto se compara con cada patrón en secuencia. Si coincide con alguno
modelo, $ estado se pone a cero. De lo contrario, $ estado está establecido en uno. Los patrones son
lo mismo que para la coincidencia de nombres de archivo, excepto que / y el primer personaje de . y las
.. no necesita coincidir explícitamente. los . no están sujetos al nombre de archivo
coincidencia antes de la ~ se ejecuta el comando, por lo que no es necesario encerrarlos en
comillas.
Medio Ambiente
El elemento entorno empresarial es una lista de cadenas que el kernel pone a disposición para ejecutar binarios.
Rc crea una entrada de entorno para cada variable cuyo valor no está vacío, y para cada
función. La cadena para una entrada de variable tiene el nombre de la variable seguido de =
valor. Si el valor tiene más de un componente, estos están separados por SOH (001)
caracteres. La cadena de una función es solo la rc entrada que define la función.
El nombre de una función en el entorno es el nombre de la función precedido por
¿Cuándo? rc comienza a ejecutar lee las definiciones de variables y funciones de su entorno.
Especial Variables
Las siguientes variables son establecidas o utilizadas por rc.
$* Se establece en rclista de argumentos durante la inicialización. Siempre que un . comando o un
se ejecuta la función, el valor actual se guarda y $* recibe el nuevo argumento
lista. El valor guardado se restaura al finalizar la . o función.
$ apid Siempre que un proceso se inicia de forma asincrónica con &, $ apid está configurado para su proceso
ID.
$ casa El directorio predeterminado para cd.
$ si Los separadores de campo de entrada utilizados en sustituciones de comillas inversas. Si $ si no está configurado
in rc, se inicializa en blanco, tabulador y nueva línea.
$ ruta La ruta de búsqueda utilizada para encontrar comandos y archivos de entrada para el . mando. Que no
establecido en el entorno, se inicializa analizando el $ RUTA variable (como en
sh(1)) o por ruta = (. /compartimiento). Las variables $ ruta y las $ RUTA son mantenidos
juntos: los cambios en uno se reflejarán en el otro.
$ pid Establecer durante la inicialización en rcID de proceso.
$ aviso ¿Cuándo? rc se ejecuta de forma interactiva, el primer componente de $ aviso se imprime antes
leyendo cada comando. El segundo componente se imprime siempre que se imprime una nueva línea.
escrito y se requieren más líneas para completar el comando. Si no se establece en el
entorno, es inicializado por prompt = ('% ' ' ').
$ estado Se establece en el mensaje de espera del último programa ejecutado. (a menos que comience con &).
! y las ~ también cambia $ estado. Su valor se utiliza para controlar la ejecución en &&, ||,
if y las mientras comandos. Cuando rc sale al final del archivo de su entrada o al ejecutar
an salida comando sin argumento, $ estado es su estado de salida.
Invocación
If rc se inicia sin argumentos lee los comandos de la entrada estándar. De lo contrario, es
El primer argumento sin bandera es el nombre de un archivo desde el cual leer los comandos (pero vea -c
debajo). Los argumentos posteriores se convierten en el valor inicial de $*. Rc acepta lo siguiente
banderas de la línea de comandos.
-c cadena Los comandos se leen desde cadena.
-s Imprima el estado de salida después de cualquier comando donde el estado no sea nulo.
-e Salir si $ estado no es nulo después de ejecutar un comando simple.
-i If -i está presente, o rc no tiene argumentos y su entrada estándar es un
terminal, se ejecuta de forma interactiva. Se solicita el uso de los comandos $ aviso.
-I Se asegura rc no se ejecuta de forma interactiva.
-l If -l se da o el primer carácter del argumento cero es -, rc lee comandos
Desde $ home / lib / profile, si existe, antes de leer su entrada normal.
-p Una operación no operativa.
-d Una operación no operativa.
-v Entrada de eco en el descriptor de archivo 2 a medida que se lee.
-x Imprima cada comando simple antes de ejecutarlo.
-r Imprime información de depuración (forma interna de los comandos a medida que se ejecutan).
FUENTE
/ src / cmd / rc
Use rcplan9 en línea usando los servicios de onworks.net