Vennlig interaktivt skall

Vennlig interaktivt skall
Generell informasjon
programtype UNIX-skall
Forfatter Axel Liljencrantz
utvikler Axel Liljencrantz
Utviklingsmodell Åpen
Første utgivelse 13. februar 2005
Tillatelse GPLv2
Faktisk tilstand Aktiv
Språk Engelsk
Teknisk informasjon
Planlagt inn
Støttede plattformer multiplattform
Versjoner
Siste stabile versjon 3.1.2 (29. april 2020 (2 år, 5 måneder og 20 dager) [ 1 ] )
Siste versjon i tester 3.1b126. januar 2020
Lenker
Offesiell nettside kodelager

Friendly interaktiv shell (forkortet fisk ) er navnet på et Unix-skall som er ment å være interaktivt og brukervennlig, i motsetning til andre skjell . Designmålet til fisk er å gi brukeren et mangfoldig sett med kraftige funksjoner på en måte som er enkel å oppdage, huske og bruke. [ 2 ] fisk regnes som et " eksotisk skall ", ettersom syntaksen verken stammer fra et "Bourne-skall" ( ksh , bash , zsh ) eller fra noe "C-skall" ( csh , tcsh ). Også, i motsetning til andre skjell, som deaktiverer noen funksjoner for å spare systemressurser, aktiverer fish alle funksjoner som standard.

Andre funksjoner

Versjon 2 legger til:

Syntaks

Syntaksen ligner et POSIX -kompatibelt skall (som Bash), men avviker på viktige måter der skaperne mener at POSIX-skallet var dårlig utformet. [ 3 ]

Det er ingen implisitt subshell

Noen konstruksjoner av språket, for eksempel pipelines , funksjoner og loops , har blitt implementert ved å bruke de såkalte subshells i andre shell -språk . Subshells er ganske enkelt underordnede programmer som kjører noen kommandoer for skallet og deretter avslutter. Dessverre har denne implementeringsdetaljen ofte den bivirkning at eventuelle tilstandsendringer som gjøres i subshell, for eksempel variabel tilordning, ikke forplantes til hovedskallet, noe som kan overraske brukeren. Fisk gafler aldri såkalte subshells; alle innebygde funksjoner er alltid fullt funksjonelle.

# Dette vil ikke fungere i mange andre skall, siden den innebygde "lese" vil # kjøre i sitt eget underskall. I Bash kan ikke høyre side av #-røret ha bivirkninger. I ksh fungerer følgende kommando, men # venstre side kan ikke ha noen bivirkninger. I fisk og zsh kan begge # sider ha bivirkninger. > katt *.txt | lese linje

Eksempel på variabel oppgave

Dette Bash-eksemplet gjør ikke det det høres ut som: siden loop-kroppen er et subshell, $founder ikke oppdateringen vedvarende.

funnet = '' cat /etc/fstab | mens du leser dev mnt hvile ; gjør hvis test " $mnt " = "/" ; deretter funnet = " $dev " fi ferdig

Løsning:

funnet = '' mens les dev mnt rest ; gjør hvis test " $mnt " = "/" ; deretter funnet = " $dev " fi ferdig </etc/fstab

Fisk trenger ingen løsning:

sett funnet '' cat /etc/fstab | mens les dev mnt rest hvis test " $mnt " = "/" sett fant $dev end end

Referanser

  1. fishshell.com versjonsmerknader for fisk 3.1.2
  2. Ukentlige Linux-nyheter . Fisk - Et brukervennlig skall. Hentet 2010-03-24.
  3. {cite web|last1=Paul|first1=Ryan|title=An In-Depth Look at Fish: The Friendly Interactive Shell|url= https://arstechnica Arkivert 16. juli 2013, på Wayback Machine ..com/information - technology/2005/12/linux-20051218/2/|website= Ars Technica |access-date=10. mars 2015|quote=Posix-syntaksen har flere manglende eller dårlig implementerte funksjoner, inkludert variabel omfang , matriser og funksjoner. Av denne grunn avviker fisk fra Posix-syntaksen på flere viktige steder.}}