close

Venlig interaktiv skal

Gå til navigation Gå til søg
Venlig interaktiv skal
Fiskeskallogo ascii.png
Fish shell 3.3.1 screenshot.png
Generel information
programtype UNIX Shell
Forfatter Axel Liljencrantz
Udvikler Axel Liljencrantz
Udviklingsmodel Åben
Første udgivelse 13. februar 2005
Licens GPLv2
Faktisk tilstand Aktiv
Sprog engelsk
Teknisk information
Planlagt ind
Understøttede platforme multi platform
Versioner
Seneste stabile version 3.1.2 (29. april 2020 (2 år, 5 måneder og 20 dage) [ 1 ] )
Seneste version i test 3.1b126. januar 2020
Links

Venlig interaktiv skal (forkortet fisk ) er navnet på en Unix-skal , der er beregnet til at være interaktiv og brugervenlig i modsætning til andre skaller . Designmålet med fisk er at give brugeren et mangfoldigt sæt af kraftfulde funktioner på en måde, der er nem at opdage, huske og bruge. [ 2 ] fisk betragtes som en " eksotisk skal ", da dens syntaks hverken stammer fra en "Bourne-skal" ( ksh , bash , zsh ) eller fra nogen "C-skal" ( csh , tcsh ). I modsætning til andre skaller , der deaktiverer nogle funktioner for at spare systemressourcer, aktiverer fish alle funktioner som standard.

Andre funktioner

Version 2 tilføjer:

  • autoforslag
  • 256 terminalfarver
  • Web-baseret konfiguration
  • Ydeevneforbedringer (ved at have flere integrerede moduler).

Syntaks

Syntaksen ligner en POSIX -kompatibel shell (såsom Bash), men afviger på vigtige måder, hvor skaberne mener, at POSIX-skallen var dårligt designet. [ 3 ]

Der er ingen implicit subshell

Nogle konstruktioner af sproget, såsom pipelines , funktioner og loops , er blevet implementeret ved hjælp af de såkaldte subshells i andre shell -sprog . Subshells er simpelthen underordnede programmer, der kører nogle kommandoer for skallen og derefter afslutter. Desværre har denne implementeringsdetalje ofte den bivirkning, at eventuelle tilstandsændringer foretaget i subshellen, såsom variabeltildeling, ikke forplantes til hovedskallen, hvilket kan overraske brugeren. Fisk gafler aldrig såkaldte subshells; alle indbyggede funktioner er altid fuldt funktionelle.

# Dette vil ikke fungere i mange andre skaller, da den indbyggede 'læs' 
vil # køre i sin egen underskal. I Bash kan højre side af #-røret 
ikke have bivirkninger. I ksh virker følgende kommando, men 
# venstre side kan ikke have nogen bivirkninger. I fisk og zsh kan begge 
# sider have bivirkninger. 
> kat *.txt |  læse linje

Eksempel på variabel tildeling

Dette Bash-eksempel gør ikke, hvad det lyder som: da loop-legemet er en subshell, er opdateringen af $found​​ikke vedvarende.

fundet = '' 
kat /etc/fstab |  mens du  læser dev mnt hvile ;  gør 
  hvis  test  " $mnt "  =  "/" ;  derefter 
    fundet = " $dev " 
  fi 
færdig

Løsning:

fundet = '' 
under  læsning af dev mnt rest ;  gør 
  hvis  test  " $mnt "  =  "/" ;  derefter 
    fundet = " $dev " 
  fi 
færdig </etc/fstab

Fisk behøver ikke en løsning:

sæt fundet '' 
kat /etc/fstab |  mens  læs dev mnt rest
   hvis  test  " $mnt "  =  "/" 
    sæt fundet $dev 
  end 
end

Referencer

  1. fishshell.com Release Notes for fish 3.1.2
  2. Ugentlige Linux-nyheder . Fisk - En brugervenlig skal. 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 Arkiveret 16. juli 2013 på Wayback Machine ..com/information - technology/2005/12/linux-20051218/2/|website= Ars Technica |access-date=10. marts 2015|quote=Posix-syntaksen har flere manglende eller dårligt implementerede funktioner, inklusive variabel omfang, matricer og funktioner. Af denne grund afviger fisk fra Posix-syntaksen flere vigtige steder.}}