Shell Script Linuxissa [Essentials Explained for Beginners]

on olemassa kaksi tapaa ajaa shell script Linuxissa. Voit käyttää:

bash script.sh

tai voit suorittaa komentotulkin komentotulkin näin:

./script.sh

se voi olla yksinkertaista, mutta se ei selitä paljoa. Älä huoli, teen tarvittavat selitykset esimerkeillä, jotta ymmärrät, miksi tiettyä syntaksia käytetään annetussa muodossa, kun suoritat komentotulkkikäsikirjoitusta.

aion käyttää tätä one line shell-komentosarjaa tehdäkseni asioista mahdollisimman mutkattomia:

:~/Scripts$ cat hello.sh echo "Hello World!"

menetelmä 1: komentotulkin komentotulkin suorittaminen siirtämällä tiedosto argumenttina komentotulkille

ensimmäisessä menetelmässä komentotulkin tiedostonimi siirretään argumenttina komentotulkille.

ottaen huomioon, että bash on oletustulkki, voit suorittaa komentosarjan näin:

bash hello.sh

tiedätkö, mitä hyötyä tästä lähestymistavasta on? Käsikirjoituksellasi ei tarvitse olla suoritusoikeutta. Melko kätevä nopeisiin ja yksinkertaisiin tehtäviin.

Suorita Shell Script Linux
Shell Script Linuxin ajaminen

jos et ole jo tuttu, kehotan sinua lukemaan yksityiskohtaisen oppaan tiedostojen käyttöoikeudesta Linuxissa.

muista, että sen täytyy olla komentotulkkikirjoitus, jonka ohitat argumenttina. Komentotulkkikirjoitus koostuu komennoista. Jos käytät normaalia tekstitiedostoa, se valittaa virheellisistä komennoista.

ajetaan tekstitiedostoa Skriptinä Linuxissa
ajetaan tekstitiedostoa Skriptinä

tässä lähestymistavassa määritit nimenomaisesti, että haluat käyttää bashia komentosarjan tulkkina.

Shell on vain ohjelma ja bash on sen toteutus. On olemassa muita tällaisia kuoret ohjelma, kuten ksh, zsh, jne. Jos sinulla on muita kuoria asennettuna, voit käyttää myös sitä Bashin sijaan.

esimerkiksi asensin zsh: n ja käytin sitä saman skriptin ajamiseen:

Suorita Komentotulkkikirjoitus zsh: lla
Suorita Komentotulkkikirjoitus Zsh: lla

suositeltu luku:

Menetelmä 2: Suorita komentotulkkikirjoitus määrittämällä sen polku

toinen tapa suorittaa komentotulkkikirjoitus on antaa sen polku. Mutta että on mahdollista, tiedosto on suoritettava. Muuten, sinulla on ”lupa evätty” virhe, kun yrität suorittaa skripti.

joten varmista ensin, että skriptilläsi on suoritusoikeus. Voit käyttää chmod-komentoa antaaksesi itsellesi tämän luvan näin:

chmod u+x script.sh

kun skripti on suoritettavissa, sinun tarvitsee vain kirjoittaa tiedoston nimi sekä sen absoluuttinen tai suhteellinen polku. Useimmiten olet samassa hakemistossa, joten voit käyttää sitä näin:

./script.sh

jos et ole samassa hakemistossa komentosarjasi kanssa, voit määrittää komentosarjan absoluuttisen tai suhteellisen polun:

Shell-komentosarja käynnissä toisessa hakemistossa
Shell-komentosarja käynnissä toisessa hakemistossa

tuo ./ ennen skripti on tärkeä (kun olet samassa hakemistossa kuin skripti)

suoritetaan Komentotulkkikäsikirjoituksia Linuxia

miksi et voi käyttää komentosarjan nimeä, kun olet samassa hakemistossa? Tämä johtuu siitä, että Linux-järjestelmäsi etsii suoritettavia tiedostoja, jotka suoritetaan muutamissa valituissa hakemistoissa, jotka on määritetty polku-muuttujassa.

tässä on järjestelmäni POLKUMUUTTUJAN arvo:

:~$ echo $PATH/home/abhishek/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

tämä tarkoittaa, että mikä tahansa tiedosto, jolla on suoritusoikeudet jossakin seuraavista hakemistoista, voidaan suorittaa mistä tahansa järjestelmästä:

  • /Etusivu / abhishek/.local/bin
  • /usr/local/sbin
  • /usr/local/bin
  • /usr/sbin
  • /usr/games
  • /usr/local/games
  • /snap/bin

binäärit tai suoritettavat tiedostot Linux-komennoille, kuten LS, Cat jne., sijaitsevat yhdessä näistä hakemistoista. Tämän vuoksi voit suorittaa näitä komentoja mistä tahansa järjestelmästäsi vain käyttämällä niiden nimiä. Komento ls sijaitsee hakemistossa/usr / bin.

etsitään komentoa Linux

kun määrität komentosarjan ilman absoluuttista tai suhteellista polkua, se ei löydä sitä polku-muuttujassa mainituista hakemistoista.

miksi useimmat komentotulkkikommentit sisältävät #! /bin / bash komentotulkin komentotulkin alussa?

muista, kuinka mainitsin, että shell on vain ohjelma ja kuorille on erilaisia toteutuksia.

kun käytät #! /bin / bash, määrität, että skripti suoritetaan Bashin kanssa tulkkina. Jos et tee sitä ja tee käsikirjoitusta ./komentosarja.Sh manner, se on yleensä ajaa mitä kuori olet käynnissä.

onko sillä väliä? Se voisi. Suurin osa komentotulkin syntaksista on yleinen kaikenlaisissa kuorissa, mutta jotkut saattavat erota.

esimerkiksi Bash-ja zsh-kuorissa array-käyttäytyminen on erilaista. Zsh: ssa array-indeksi alkaa nollan sijasta 1: stä.

Bash Vs Zsh
Bash Vs Zsh

Käyttäen #! /bin / bash osoittaa, että komentosarja on bash shell-komentosarja ja se tulee suorittaa bash-tulkin kanssa riippumatta järjestelmässä käytettävästä komentotulkista. Jos käytät zsh erityistä syntaksia, voit osoittaa, että se on zsh script lisäämällä #! /bin / zsh komentosarjan ensimmäisenä rivinä.

väli#! – ei sillä ole väliä. Voit käyttää myös #!- bin bash.

oliko siitä apua?

Toivottavasti tämä artikkeli lisäsi Linux-tietämystäsi. Jos sinulla on vielä kysymyksiä tai ehdotuksia, Jätä kommentti.

Asiantuntijakäyttäjät voivat vielä niputtaa tämän artikkelin asioista, joista jäin paitsi. Mutta tällaisten aloittelevien aiheiden ongelma on se, että ei ole helppoa löytää oikeaa tietojen tasapainoa ja välttää liian paljon tai liian vähän yksityiskohtia.

jos olet kiinnostunut oppimaan bash scriptiä, meillä on kokonainen Bash Beginner-sarja sysadmin-fokusoidulla sivustolla Linux-käsikirja. Jos haluat, voit myös ostaa ebook ylimääräisiä harjoituksia tukemaan Linux-käsikirja.

Pidätkö lukemastasi? Ole hyvä ja jaa se muiden kanssa.

50Shares
  • Facebook0
  • Twitter49
  • LinkedIn1
  • Reddit0

Leave a Reply

Vastaa

Sähköpostiosoitettasi ei julkaista.