Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa Próxima revisiónAmbos lados, revisión siguiente | ||
tcsh [2023/02/25 17:59] – [Funcionalidades] peron | tcsh [2023/02/26 03:41] – peron | ||
---|---|---|---|
Línea 5: | Línea 5: | ||
TCSh es casi enteramente retrocompatible con csh, de modo que cualquier conocimiento de C Shell resulta inmediatamente aplicable a tcsh. Pero tsch va más allá de csh, agregando capacidades como un editor de línea de comandos de propósito general, corrección de escritura, y completado programable de comandos, ficheros y nombre de usuarios. | TCSh es casi enteramente retrocompatible con csh, de modo que cualquier conocimiento de C Shell resulta inmediatamente aplicable a tcsh. Pero tsch va más allá de csh, agregando capacidades como un editor de línea de comandos de propósito general, corrección de escritura, y completado programable de comandos, ficheros y nombre de usuarios. | ||
- | Entre sus funciones contamos con historial de comandos, stack de directorios (para poder sortear entre los dos directorios recientes con '' | + | |
==== Historia ==== | ==== Historia ==== | ||
Línea 15: | Línea 15: | ||
>tcsh permanece como shell del administrador en las distribuciones [[BSD]]. Su prompt tradicional es ''> | >tcsh permanece como shell del administrador en las distribuciones [[BSD]]. Su prompt tradicional es ''> | ||
- | ==== Funcionalidades ==== | + | ===== Funcionalidades ===== |
+ | === Configuración | ||
TCSh se configura a nivel usuario a través del fichero ~/ | TCSh se configura a nivel usuario a través del fichero ~/ | ||
+ | |||
+ | Entre sus funciones contamos con historial de comandos, stack de directorios (para poder sortear entre los dos directorios recientes con '' | ||
Cuenta con control de trabajos incorporados. El comando incorporado '' | Cuenta con control de trabajos incorporados. El comando incorporado '' | ||
=== Historial de comandos === | === Historial de comandos === | ||
- | El comando '' | + | El comando '' |
| '' | | '' | ||
Línea 29: | Línea 32: | ||
| '' | | '' | ||
- | ===Usar historial en comandos nuevos === | + | ====Usar historial en comandos nuevos ==== |
| '' | | '' | ||
| '' | | '' | ||
| '' | | '' | ||
| '' | | '' | ||
- | | '' | + | | '' |
- | | '' | + | | '' |
- | ===Edición de línea de Comandos=== | + | ====Edición de línea de Comandos==== |
- | En la línea de comandos, activa el // | + | |
+ | ===Autocompletado=== | ||
+ | En la línea de comandos, activa el // | ||
+ | |||
+ | ===Selector de Argumentos=== | ||
Selector de Argumento de Alias: tcsh es el único intérprete de comando que define un alias para ofrecer argumentos a los comandos. | Selector de Argumento de Alias: tcsh es el único intérprete de comando que define un alias para ofrecer argumentos a los comandos. | ||
- | + | | '' | |
- | | '' | + | |
| '' | | '' | ||
| '' | | '' | ||
Línea 50: | Línea 57: | ||
| '' | | '' | ||
| '' | | '' | ||
- | | '' | + | | '' |
+ | |||
+ | =====Diferencias entre Tcsh y Bash===== | ||
+ | |||
+ | === Hola Mundo === | ||
+ | Sólo la primer línea es diferente a Bash. | ||
+ | |||
+ | #!/bin/tcsh -f | ||
+ | echo "Hello World" | ||
+ | |||
+ | ===Variables=== | ||
+ | |||
+ | La sintaxis es diferente a Bash. Para configurar el valor de una variable, debemos utilizar la palabra reservada '' | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/tcsh -f | ||
+ | |||
+ | set NAME = " | ||
+ | echo $NAME | ||
+ | |||
+ | set launchdate = "Feb 25, 2023" | ||
+ | echo $launchdate | ||
+ | </ | ||
+ | |||
+ | En tcsh Todas las variables se comportan como variables globales. | ||
+ | |||
+ | Las variables de Ambiente pueden accederse directamente (e.g., '' | ||
+ | |||
+ | ===Comentarios=== | ||
+ | Los comentarios de una línea son similares a Bash. Tcsh __no soporta__ comentarios multilínea. | ||
+ | |||
+ | ===Citas=== | ||
+ | Su sintaxis es similar a la de bash. | ||
+ | |||
+ | ===Depurado=== | ||
+ | A diferencia de Bash, no se puede activar o desactivar el depurado dentro de un guión tcsh. En su lugar, podremos ejecutar un guión de tcsh en modo de trazado línea a línea, de la siguiente manera: | ||
+ | |||
+ | <code bash> | ||
+ | tcsh -xv guion.csh | ||
+ | </ | ||
+ | |||
+ | ===Códigos de salida=== | ||
+ | A diferencia de Bash, en tcsh al ejecutar guiones con trozos de código erróneo, el mismo detendrá su ejecución. Podrá observarse tal comportamiento coN: | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/tcsh -f | ||
+ | |||
+ | rm -f / | ||
+ | echo " | ||
+ | ls -l / | ||
+ | chmod 0444 / | ||
+ | ls -l / | ||
+ | echo " | ||
+ | echo "No puedo llegar a esta línea de código." | ||
+ | </ | ||
+ | |||
+ | ===Argumentos de línea de comando=== | ||
+ | La sintaxis es diferente a bash. TCsh no tiene indicadores de arcumentos como los '' | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/tcsh -f | ||
+ | |||
+ | set num_args = $# | ||
+ | set i = 1 | ||
+ | set list = ( ) | ||
+ | echo "Build the list from commandline arguments..." | ||
+ | while ($i <= $num_args) | ||
+ | @ i_minus_1 = $i - 1 | ||
+ | set arg = $argv[$i] | ||
+ | echo " | ||
+ | set list = ( $list $arg ) | ||
+ | @ i = $i + 1 | ||
+ | end | ||
+ | echo "Now print the list..." | ||
+ | foreach f ($list) | ||
+ | echo " | ||
+ | end | ||
+ | </ | ||
+ | |||
+ | ===Ficheros include=== | ||
+ | La sintaxis es la misma que en bash. | ||
+ | |||
+ | ===Comandos de ShellShell=== | ||
+ | Tcsh también utiliza diéresis para correr comandos de shell, de la misma forma que lo hace Bash. | ||
+ | |||
+ | ===Entradas del usuario=== | ||
+ | La sintaxis de TCSh es muy diferente a la de Bash. El siguiente código demuestra cómo leer una cadena del usuario empleando '' | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/tcsh -f | ||
+ | |||
+ | echo -n " | ||
+ | set x = $< | ||
+ | if ($x < 1 || $x > 10) then | ||
+ | echo " | ||
+ | else | ||
+ | echo "Ha ingresado: $x" | ||
+ | endif | ||
+ | </ | ||
+ | |||
+ | ===Operaciones aritméticas=== | ||
+ | La sintaxis de TCSh es muy diferente a la de Bash. Para realizar operaciones ariméteicas comienza la línea con '' | ||
+ | |||
+ | ===Comparación Numérica=== | ||
+ | Su sintaxis es similar a la de Bash, con la excepción de que no necesitamos dos pares de paréntesis '' | ||
+ | |||
+ | ===Comparación de Cadenas=== | ||
+ | La sintaxis de Tcsh es similar a la de Bash. El código siguiente lee una cadena del usuario, revisa para var que no sea una cadena vacía. Si no lo es, realiza una comparación de patrón para observar si la cadena finaliza con '' | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/tcsh -f | ||
+ | |||
+ | echo -n " | ||
+ | set name = $< | ||
+ | if ($name == "" | ||
+ | echo " | ||
+ | else | ||
+ | if ($name =~ " | ||
+ | echo " | ||
+ | else | ||
+ | echo "No es un fichero txt: $name" | ||
+ | endif | ||
+ | endif | ||
+ | </ | ||
+ | |||
+ | ===If-else=== | ||
+ | La sintaxis de Tcsh es diferente a la de Bash. Observe el ejemplo anterior para considerar la declaración anidada if-then-else. | ||
+ | |||
+ | ===bucle For=== | ||
+ | La sintaxis de Tcsh es diferente de la de Bash. En lugar de emplear '' | ||
+ | |||
+ | ===Bucle While=== | ||
+ | La sintaxis de Tcsh es ligeramente diferente a la de Bash. Por favor consulta el ejemplo anteior en búsqueda de un bucle '' | ||
+ | |||
+ | ===Case=== | ||
+ | La sintaxis de Tcsh es diferente a la de Bash. El código a continuación leerá una cadena del usuario, revisará si iguala a uno de los casos provistos. | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/tcsh -f | ||
+ | |||
+ | echo -n " | ||
+ | set x = $< | ||
+ | switch ( $x ) | ||
+ | case " | ||
+ | echo "Ha ingresado un número impar entre 1 y 10: $x" | ||
+ | breaksw | ||
+ | case " | ||
+ | echo "Ha ingresado un número par entre 1 y 10: $x" | ||
+ | breaksw | ||
+ | default: | ||
+ | echo "Ha ingresado: $x" | ||
+ | endsw | ||
+ | </ | ||
+ | |||
+ | ===Funciones=== | ||
+ | A diferencia de Bash, __Tcsh no soporta función alguna__. | ||
+ | |||
+ | > En este aspecto, ¡Bash es claramente superior a Tcsh! |