![Kiekvienas dalykas, kurį reikia žinoti apie „Firefox Focus v1.1“ atnaujinimą](/f/b678bd52d33d73a9039725d060790444.jpg?width=100&height=100)
Pagrindinis šio straipsnio tikslas yra aiškiai suprasti, kas nutinka paleidžiant scenarijus vs šaltinis scenarijus bash. Pirma, mes aiškiai suprasime, kaip programa pateikiama, kai scenarijų iškviečiate įvairiais būdais.
PASTABA: sukurti scenarijų su plėtiniu nesvarbu. Scenarijus veiks gerai net ir be plėtinių.
Iš esmės kiekvienas scenarijus prasideda eilute, vadinama a šefas (#!). The Hash simbolis bash bus interpretuojamas kaip komentarai, bet šlykštynė turi ypatingą reikšmę. Jis liepia bash pateikti programą bet kokiu vertėju, kurį paminėjote šlykštynė.
Žemiau yra programos pavyzdys, o aš kaip vertėjas nurodau bash.
$ katė >> Hello_World.sh. #!/usr/bin/env bash. echo "Labas pasaulis" $ chmod +x Hello_world.sh.
Dabar, norėdami paleisti scenarijų, galite tai padaryti dviem būdais.
$ ./Hello_world.sh. $ pwd. $/home/karthick/Hello_world.
Dabar pažiūrėkime, kas atsitiks, kai bandysite pateikti savo programą be jos šlykštynė. Nesant šlykštynė, programa bus pateikta bet kokiam dabartiniam apvalkalui, kurį naudojate. Mano atveju taip yra Bash (/bin/bash).
Leiskite parodyti pavyzdį. Aš kuriu python scenarijų be jo šlykštynė ir kai skambinu programai, mušti nežino, kad ji turėtų pateikti šią programą „python“ vertėjui, o paleisti programą dabartiniame apvalkale.
$ cat> run-py.py. echo $ SHELL. print („Labas pasaulis“) $ chmod +x run-py.py. $ ./run-py.py.
Tokiu atveju galite paskambinti programai, nurodydami, kuriam vertėjui ji turėtų būti pateikta, arba tiesiog pridėkite šlykštynė linija, kuri visada rekomenduojama.
# kuris python3. $ (kuris python3) /home/karthick/run_py.py.
Dabar, kai žinote, kaip paskambinti scenarijui, kitas žingsnis būtų suprasti, kas atsitinka, kai vadiname scenarijų. Kai iškviečiate scenarijų, kaip parodyta aukščiau esančiuose pavyzdžiuose, jis sukurs antrinį procesą (šakia), o scenarijus bus pateiktas antriniam procesui. Paleidau scenarijaus pavyzdį, kuris tiesiog paleis šią komandą ir parodys, kad scenarijus pateiktas antriniam procesui.
$ ps -ef -miškas | grep -i bash.
Kaip scenarijaus dalis gali būti keli antriniai procesai ir tai priklauso nuo mūsų kodo. Reikia pažymėti, kad aplinkos indeksas, sukurtas naudojant indeksą, bus pašalintas, kai jis bus baigtas. Antrinis procesas gali pasiekti pirminio proceso sukurtus kintamuosius juos eksportuodamas. Tačiau pirminis procesas negali pasiekti antrinio proceso sukurtų kintamųjų.
Peržiūrėkite toliau pateiktus straipsnius, kad sužinotumėte daugiau apie kintamųjų veikimą ir kintamųjų eksportavimą.
“Šaltinis“Yra integruota apvalkalo komanda, kuri nuskaito jai argumentą perduotą failą ir paleidžia kodą dabartinėje apvalkalo aplinkoje. Tinkamas naudojimo atvejis, kurį dažniausiai naudojate, yra konfigūracijos keitimas .bashrc
arba .bash_profile
ir iš naujo įkelkite pakeitimus naudodami šaltinio komanda.
$ tipas -šaltinis.
Yra du sintaksiniai būdai paleisti šaltinio komanda. Galite pasirinkti bet kurį iš dviejų sintaksių ir tai yra asmeninis pasirinkimas.
$ šaltinis FILE_NAME [ARGUMENTS] $. FILE_NAME [ARGUMENTS]
Leiskite parodyti, kaip iš tikrųjų veikia šaltinis. Aš sukursiu du apvalkalo scenarijus. Pirmasis scenarijus (Modulis.sh) turės keletą kintamųjų ir funkcijų. Antrasis scenarijus (Pagrindinis.sh) spausdins kintamąjį ir iškvies funkciją.
Failas Modulis.sh.
#!/usr/bin/env bash VAR1 = $ (echo "Sveiki atvykę į $ 1") funkcija f1 () {echo "Funkcija f1 vadinama" }
Failas Pagrindinis.sh.
#!/usr/bin/env bash echo $ VAR1. f1.
Nustatykite scenarijaus vykdymo leidimą ir paskambinkite pagrindiniam scenarijui "Main.sh". Dabar šis scenarijus bandys rasti funkciją f1
ir kintamasis VAR1
dabartinėje apvalkalo aplinkoje ir nepavyks, kai komanda nerasta.
$ bash main.sh.
Dabar paleiskite komandą šaltinis scenarijuje, kuris įkelia kintamąjį ir funkcijas į dabartinę apvalkalo aplinką ir bus pasiekiamas "Main.sh".
Failas Modulis.sh.
#!/usr/bin/env bash VAR1 = $ (echo "Sveiki atvykę į $ 1") funkcija f1 () {echo "Funkcija f1 vadinama" }
Failas Pagrindinis.sh.
#!/usr/bin/env bash source module.sh Tecmint. echo $ VAR1. f1.
Dabar paleiskite scenarijų dar kartą ir pamatysite.
$ bash main.sh.
The šaltinis yra labai naudinga mušti vadovautis modulinio programavimo metodu kurdami mūsų apvalkalo scenarijus. Mes galime suskaidyti savo kodą į mažesnius modulius ir būti naudojami daugelyje programų. Šiais būdais galime sekti SAUSAS (Nekartokite savęs) principas.
Tai šiam straipsniui. Trumpai aptarėme skirtumą tarp tiekimo ir išsišakojimo bash. Peržiūrėkite straipsnį ir pasidalykite savo vertingais atsiliepimais su mumis.