C shell

[1]​[2]​ Otros desarrolladores que contribuyeron al código de C shell en sus primeras etapas fueron Michael Ubell, Eric Allman, Mile O'Brien y Jim Kulp.Lo que diferenciaba la shell C de otras (en 1980) fueron sus características interactivas y el estilo general.[8]​ Debido a que tcsh[9]​ solo agregó funcionalidad y no cambió mucho se mantuvo compatible con la C shell original.tcsh inició como una rama lateral a partir del código inicial que Bill Joe había escrito.tcsh es ahora la rama principal que se continua desarrollando, se mantiene estable y las versiones son publicadas alrededor del año y consisten en pequeñas correcciones de errores.[10]​ El sistema operativo Unix se había escrito exclusivamente en C, así que el primer objetivo de C shell fue un lenguaje de comandos que poseyera un estilo consistente con el resto del sistema.La condición entre corchetes era evaluada de forma lenta, esto quería decir que necesitaba correr programas externos para realizar dicha comprobación.Si el proceso hijo daba un código de retorno cero, entonces sh buscaría una cláusula then (una sentencia separada pero a menudo escrita en la misma línea con un punto y coma) y ejecutaría el bloque anidado, de lo contrario se ejecutaría el resto.Por el contrario csh podía evaluar expresiones directamente, lo que la hacía más rápida.El segundo objetivo de C shell era ser mejor para el uso interactivo.Los usuarios podían realizar tareas con menos pulsaciones de teclas y ejecutaban más rápido.La notación tilde ofrece un forma abreviada de especificar las rutas relativas al directorio home usando el carácter "~".C shell también introdujo varias notaciones convenientes (conocida como extend globbing) que fueron copiados por otros shells de Unix.abc{def,ghi} es una variación y se expande a abcdef abcghi.Por el contrario, en Windows la interpretación de comodín se realiza usualmente por cada aplicación.> significa que el stdout se escribirá en un archivo y si existe lo sobreescribirá y si no existe lo creará, los errores que se presenten serán mostrado en la ventana del shell.<< stdin leerá las siguientes líneas hasta que coincida con la cadena de caracteres.Los comandos puede ser conectados usando tuberías, esto es, que la salida de un comando es la entrada del siguiente.|& significa conectar stdout y stderr al stdin del siguiente comando.En sistema con varios núcleos (procesadores múltiples) los comandos de tuberías (pipeline) pueden estar ejecutándose al mismo tiempo, en caso contrario el programador del sistema operativo divide el tiempo de ejecución entre los comandos."a|b", la shell crea una tubería, entonces a y b usarán stdio para que los dos comandos sean redirigidos.Una subshell es un copia secundaria separa de shell que hereda su estado actual, pero puede hacer cambios p. ej.La forma corta se escribe especificando el condicional y el comando en la misma línea.Si no coincide con ningún patrón se toma la acción por defecto (default), si la hay.
Muestra la shells tcsh y sh Unix ejecutándose en escritorio Mac OSX.
Muestra la shells tcsh y sh Unix ejecutándose en escritorio Mac OSX.