Denne første linjen (#!/ bin / bash eller #!/ bin / sh) har et navn. Det er kjent som ‘she-bang'(shabang). Dette kommer fra sammenkoblingen av tokens sharp ( # ) og bang (!). Det kalles også som sh-bang, hashbang, poundbang eller hash-pling. I databehandling er en she-bang tegnsekvensen som består av tegnene nummerskilt og utropstegn (#!) i begynnelsen av et skript.
/bin/bash VS /bin/sh
Vi har ofte sett forskjellige she-bang eller script header. Vi lurer ofte på hvorfor er det bestemt skript ved hjelp av den spesielle hun-bang, hvorfor ikke noen andre. På Unix-Lignende Operativsystemer har vi et utvalg av flere skall. Skallet er ansvarlig ikke bare for de små meldingene, men også å tolke kommandoene til skriptet. Dermed spiller skallet en viktig rolle spesielt når vi implementerer store og komplekse logikker ved hjelp av forhold, rør , løkker, etc.
/bin/sh er en kjørbar som representerer systemskallet og vanligvis implementert som en symbolsk lenke som peker til kjørbar for hvilket skall som er systemskallet. Systemskallet er i utgangspunktet standardskallet som skriptet skal bruke. I de siste par årene bestemte Debian (Og Ubuntu) seg for å bytte systemskallet fra bash til dash — et lignende skall, men lettere og mye raskere.
Dash er ganske godt kompatibel med bash, basert på samme POSIX-standard. Det implementerer imidlertid ikke bash-spesifikke utvidelser. POSIX standard Er Bærbart Operativsystem Grensesnitt, et forsøk PÅ å standardisere UNIX-lignende Operativsystemer. Selv Om Ubuntus systemskall peker på dash, fortsetter innloggingsskallet som bruker å være bash på dette tidspunktet.
/bin/bash er det vanligste skallet som brukes som standardskall for brukerinnlogging av linux-systemet. Navnet Er et akronym For Bourne-again shell. Bash kan utføre de aller fleste skript og dermed er mye brukt fordi den har flere funksjoner, er godt utviklet og bedre syntaks.
HVA ER DET ? / HVORFOR BRUKER VI DET?
#!/bin/bash
echo $(date) # Will print the output of date command
touch ~/output.txt
echo "Hey there" > ~/output.txt
la oss vurdere et veldig enkelt skript som ovenfor. I alle enkleste tilfelle hvis vi analyserer et skallskript, er det ingenting annet enn en liste over kommandoer lagret i en fil. Det reduserer vår innsats for å kjøre samme oppgave eller kommandoer igjen og igjen. Så hvis vi ser på begynnelsen av skriptet den første linjen starter med en hash ( # ) og et utropstegn (!). Som du allerede må vite at en linje som starter med en hash ( # ), leses som en kommentar. Således når vi utfører skriptet, leses den første linjen som en kommentar og tolk går til den andre linjen. Men den første linjen har allerede gjort jobben sin.
I Unix – Lignende Operativsystemer når et skript starter med en she-bang(#!) utføres som et program, analyserer programmet loader resten av manuset første linje som en tolk-direktiv. Dermed kjøres det angitte tolkeprogrammet i stedet, og går til det som et argument banen som ble brukt først gjennom skriptet.
Anta at et skript starter med følgende linje:
#!/bin/sh
deretter blir programlasteren instruert til å bruke /bin/sh-programmet i stedet for noe annet, og passerer skriptets sti som det første argumentet.
i enkle ord forteller she-bang på skriptets hode systemet at denne filen er et sett med kommandoer som skal mates til kommandotolken som er angitt. Unix-lignende operativsystemer har forskjellige skall og hver av skriptoverskriftlinjer kaller en annen kommandotolk.
noen she-bang EKSEMPLER
#!/bin / sh :Utfører skriptet ved Hjelp Av Bourne shell eller et kompatibelt skall, med path /bin/sh
#!/ bin / bash: Utfører skriptet ved Hjelp Av Bash-skallet.
#!/ bin / csh-f: Utforer skriptet ved Hjelp Av c shell eller et kompatibelt skall.
#!/ usr / bin / perl-t :Utfører skriptet ved hjelp av perl med mulighet for plett sjekker
#!/usr / bin / env python :Utfører skriptet ved hjelp av python ved å se opp banen til python tolk automatisk fra miljøvariablene
Forhåpentligvis har du bedre ide om hva she-bang er nå og hvilken hensikt tjener den.