Kaj je skript Shell in zakaj ga morate uporabiti

Kaj je skript Shell in zakaj ga morate uporabiti

Lupina je program v operacijskem sistemu Linux ali Unix, ki vam omogoča vnos ukazov za izvajanje v sistemu. Ko se v računalniku linux odpre terminalsko okno, se zažene lupinski program, ki predstavlja vmesnik za vnos ukazov. Ta vmesnik je znan kot vmesnik ukazne vrstice. Ko vnesete ukaz, ga izvede lupina in izhod se prikaže na zaslonu.





Poleg tega, da lahko lupino interaktivno sprejema in izvaja ukaze, lahko izvaja tudi ukaze, shranjene v datoteki. Ta način izvedbe je znan kot lupinsko skriptiranje , v tem članku pa zajemamo osnove skriptov lupine.





1. Zgodovina školjke

Začenši z Unixom v sedemdesetih letih je obstajal lupinski program, imenovan V6 lupina razvil Ken Thomson. To je bila interaktivna lupina in ni imela sposobnosti skriptiranja.





Sledilo je Bourne Shell leta 1977 in se še vedno uporablja kot privzeta lupina za koren račun. Ta lupina je dodala skriptne sposobnosti, ki so se skozi leta izkazale za zelo uporabne.

Nadaljnji razvoj lupine v osemdesetih letih je povzročil številne priljubljene različice lupin, med katerimi so bile najbolj priljubljene C-lupina in Korn Shell . Vsaka od teh lupin je prinesla svojo sintakso, ki se je v določenih primerih drastično razlikovala od prvotne lupine.



Ena izmed najbolj priljubljenih školjk danes je Bash Shell . Bash pomeni Bourne-Again-Shell in je močno izboljšana različica prvotne Bourne Shell.

iphone 12 proti iphone 12 pro max

V tem članku opisujemo skriptne skripte za Bash Shell .





2. Izvajanje skripta lupine

Kako izvedete lupinski skript? Enostavno. Prenesite pot skripta kot argument lupini:

Primer skripta lupine:





echo 'hello world'

Zaženite ga na naslednji način:

$ bash hello.sh
# prints
hello world

Opomba: Lupina zahteva, da se vrstice končajo z znaki LF (Line-Feed). Če svoj skript lupine napišete v sistemu Windows in ga poskusite izvesti neposredno v sistemu Linux, lahko pride do napak. Windows uporablja kombinacijo CR-LF (Carriage-Return-Line-Feed) za prekinitev vrstice. To je treba pretvoriti samo v LF. Preverite, kako to storite v urejevalniku Windows.

Obstaja še en način za izvajanje skripta lupine neposredno kot ukaz. Vstavite naslednjo vrstico ( hashbang deklaracija) kot prvo vrstico skripta lupine.

moj telefon ima vedno pojavna okna
#!/bin/bash

S to spremembo je naš preprost skript lupine zdaj:

#!/bin/bash
echo 'hello world'

Zdaj morate datoteko skripta narediti izvedljivo na naslednji način:

$ chmod +x hello.sh

Na tej točki lahko datoteko skripta izvedete neposredno, ne da bi se morali izrecno sklicevati na lupino.

$ hello.sh
# prints
hello world

Poglejmo zdaj nekaj prednosti uporabe skript lupine.

3. Avtomatizacija opravil

Prva prednost uporabe skriptov lupine je avtomatizacija pogosto izvajanih nalog. Recimo, da imate nalogo, ki jo morate opravljati vsak dan. Če morate v sistemu Linux vsak dan izvajati več ukazov, jih lahko shranite v datoteko in zaženete skript. Primeri vključujejo:

  • Vsak dan arhivirajte in naložite datoteko ali mapo v objekt za shranjevanje v oblaku kot je S3.
  • Stisnite dnevniške datoteke, ki rastejo vsak dan.
  • Pridobite cene delnic, razčlenite pridobljene podatke in sprožite e -poštno sporočilo ali SMS, ko so izpolnjeni določeni pogoji (previsoke ali prenizke cene).

4. Združevanje več ukazov

Poleg avtomatizacije pogostih opravil se vam morda zdi koristno tudi to, da lahko v en ukaz združite več zaporedij ukazov. Zapomniti si en ukaz je veliko enostavneje kot več ukazov, da ne govorimo o vrstnem redu, v katerem jih je treba izvesti.

Primer je zagonsko zaporedje samega operacijskega sistema Linux. Kot del zagona OS izvede številne ukaze, da sistem pripelje v ustrezno stanje. Ti ukazi so v resnici skripti lupine, ki živijo pod /itd imenik. Če pogledate enega od teh skriptov lupine, se boste zavedali zapletenosti zagona sistema, ki bi ga morda morali izvesti ročno, če ni skriptov lupine.

Spodaj je vzorec skripta lupine, /etc/profile , ki se izvede ob vsaki prijavi uporabnika. Predstavljajte si, da te ukaze vnesete ročno!

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ '$PS1' ]; then
if [ '$BASH' ] && [ '$BASH' != '/bin/sh' ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='h:w$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ '`id -u`' -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

5. Lažje razvijati

Ista dejanja kot skript lupine je mogoče izvesti v običajnem programu, napisanem v C/C ++. Vendar je veliko lažje pisati in odpravljati napake skript lupine kot program C/C ++. Še posebej za naloge skrbništva sistema, ki vključujejo izvajanje zunanjih ukazov, ustvarjanje in odstranjevanje datotek in imenikov, preusmerjanje izhodov itd.

Programi C/C ++ so boljši za veliko nižjo raven delovanja, kot so priklic sistemskih klicev, manipulacija podatkovnih struktur itd.

6. Preglednost

Skript lupine, ker je besedilna datoteka, si lahko preprosto ogledate in preverite, katera dejanja izvaja. Nasprotno pa boste edini način, da boste kdaj vedeli, kaj počne program, napisan v jeziku, kot je C/C ++ (in preveden v izvedljivo datoteko), je, če vam to pove ali če imate dostop do izvorne kode. Na primer, lahko preverite, ali skript lupine briše datoteke, in če jih potrebujete, jih lahko kopirate na drugo mesto.

Prav tako je veliko lažje diagnosticirati težave s skripti lupine in ne z običajnimi programi, saj si lahko ogledate izvorno kodo. Ali ta skript ne uspe, ker imenik ne obstaja? Ogledate si lahko kodo skripta in ustvarite imenik (čeprav bi ga moral dobro obnašan skript lupine preveriti in ustvariti, da se izognete takšnim napakam).

7. Prenosni

TO skript lupine lahko prenesete v druge operacijske sisteme Unix in Unix in jih izvedete (če je prisotna sama lupina). Tudi pri prenosu lupinskega skripta iz različnih arhitektur, kot so x86, MIPS, Sparc itd., So skripti lupin veliko bolj prenosljivi kot programi C/C ++.

Edini način, da lahko program C/C ++ prenesete in uporabite v drugem sistemu, je, da kopirate izvorno kodo, sestavite program in ga poskusite zagnati. Tudi takrat morda ne bo deloval po pričakovanjih, če uporablja kodo, značilno za arhitekturo.

Zdaj, ko imate idejo, kaj so skripti lupine in njihove številne prednosti, jih ne bi radi uporabili za svoje naloge? S kakšnimi težavami ste se srečevali pri njihovi uporabi? Sporočite nam v spodnjih komentarjih.

kako narediti niz Snapchat
Deliti Deliti Cvrkutati E-naslov 5 nasvetov za polnjenje vaših strojev VirtualBox Linux

Ste naveličani slabe zmogljivosti, ki jo ponujajo virtualni stroji? Tukaj je tisto, kar morate storiti za povečanje zmogljivosti VirtualBox.

Preberite Naprej
Sorodne teme
  • Programiranje
  • Linux Bash Shell
O avtorju Jay Sridhar(17 objavljenih člankov) Več od Jaya Sridharja

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, če se želite naročiti