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.
Versjon 2 legger til:
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 ]
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 linjeDette 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 ferdigLøsning:
funnet = '' mens les dev mnt rest ; gjør hvis test " $mnt " = "/" ; deretter funnet = " $dev " fi ferdig </etc/fstabFisk trenger ingen løsning:
sett funnet '' cat /etc/fstab | mens les dev mnt rest hvis test " $mnt " = "/" sett fant $dev end end