Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
Friendly interactive shell
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
{{Ficha de software |última_versión=4.5.0 |fecha_última_versión={{fecha de lanzamiento|17|02|2026}}<ref name="release">[https://github.com/fish-shell/fish-shell/releases/tag/4.5.0 fishshell.com] Release 4.5.0</ref> |estado=Activo |modelo_desarrollo=Abierto }} '''Friendly interactive shell''' (abreviado como '''fish''') es el nombre de una [[shell de Unix]] que pretende ser interactiva y amigable para el usuario, al contrario de otras ''shells''. La meta de diseño de ''fish'' es dar al usuario un conjunto diverso de poderosas características de una manera fácil de descubrir, recordar y usar.<ref>[https://lwn.net/Articles/136232/ Linux Weekly News]. Fish - A user-friendly shell. Retrieved 2010-03-24.</ref> fish es considerado un "[[Shell de Unix#Otros o exóticos|shell exótica]]", ya que su sintaxis no deriva ni de una «Bourne shell» ([[Korn shell|ksh]], [[bash]], [[zsh]]) ni de alguna «C shell» ([[csh]], [[tcsh]]). También, al contrario de otras ''shells'', que desabilitan algunas características para cuidar los recursos del sistema, ''fish'' habilita todas las características por defecto. ==Otras características== * Completamiento avanzado de pestañas. * [[Resaltado de sintaxis]] con amplia comprobación de errores. * Soporte para [[X Window System|X]] [[Clipboard (software)|clipboard]]. * Manejo inteligente de [[Terminal de ordenador|terminal]] basado en [[terminfo]]. * Búsqueda en el [[historial de comandos]]. La versión 2 añade: * Autosugerencias * 256 colores de terminal * Configuración basada en la web * Mejoras en el rendimiento (al disponer de más módulos integrados). == Sintaxis == La sintaxis se asemeja a un shell compatible con [[POSIX]] (como Bash), pero se desvía en aspectos importantes en los que los creadores creen que el shell POSIX estaba mal diseñado.<ref name="indepthfish">{cite web|last1=Paul|first1=Ryan|title=Una mirada en profundidad a fish: el shell interactivo amigable|url=https://arstechnica {{Wayback|url=https://arstechnica/ |date=20130716193114 }}. com/information-technology/2005/12/linux-20051218/2/|website=[[Ars Technica]]<nowiki>|access-date=10 de marzo de 2015|quote=la sintaxis de Posix tiene varias características que faltan o están mal implementadas, incluyendo el ámbito de las variables, las matrices y las funciones. Por esta razón, fish se aleja de la sintaxis Posix en varios lugares importantes.}}</nowiki></ref> === No hay subshell implícito === Algunas construcciones del lenguaje, como [[Pipeline (software)|pipelines]], [[Subrutina|funciones]] y [[Flujo de control#Loops|bucles]], se han implementado utilizando las llamadas subshells en otros lenguajes [[Shell (informática)|shell]]. Las subshells son simplemente programas hijos que ejecutan algunos comandos para la shell y luego salen. Desafortunadamente, este detalle de implementación suele tener el efecto secundario de que cualquier cambio de estado realizado en la subshell, como la asignación de variables, no se propaga a la shell principal, lo que puede sorprender al usuario. Fish nunca bifurca los llamados subshells; todos los builtins son siempre completamente funcionales.<syntaxhighlight lang="fish"> # Esto no funcionará en muchos otros shells, ya que el builtin 'read' # se ejecutará en su propio subshell. En Bash, el lado derecho de la tubería # no puede tener efectos secundarios. En ksh, el siguiente comando funciona, pero # el lado izquierdo no puede tener efectos secundarios. En fish y zsh, ambos # lados pueden tener efectos secundarios. > cat *.txt | read line </syntaxhighlight> === Ejemplo de asignación de variables === Este ejemplo de Bash no hace lo que parece: como el cuerpo del bucle es un subshell, la actualización de <code>$found</code> no es persistente.<syntaxhighlight lang="bash"> found='' cat /etc/fstab | while read dev mnt rest; do if test "$mnt" = "/"; then found="$dev" fi done </syntaxhighlight>Solución:<syntaxhighlight lang="bash"> found='' while read dev mnt rest; do if test "$mnt" = "/"; then found="$dev" fi done </etc/fstab </syntaxhighlight>Fish no necesita una solución:<syntaxhighlight lang="fish"> set found '' cat /etc/fstab | while read dev mnt rest if test "$mnt" = "/" set found $dev end end </syntaxhighlight> ==Referencias== {{listaref}} {{Control de autoridades}} [[Categoría:Software para Linux]] [[Categoría:Shell de Unix]] [[Categoría:Software libre programado en Rust]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
Friendly interactive shell
»
Añadir idiomas
Añadir tema