Ako spustiť shell skript z Bash Script


Spustenie shellového skriptu v Bash je jednou z najzákladnejších a najužitočnejších zručností pre každého, kto pracuje so systémami Linux. Shell skripty vám umožňujú automatizovať opakujúce sa úlohy, spravovať konfigurácie systému a vytvárať zložité pracovné postupy v niekoľkých riadkoch kódu. Či už ste začiatočník alebo skúsený používateľ, zvládnutie vám ušetrí čas a námahu. V tomto článku si prejdeme každý krok na úspešné spustenie shellového skriptu v Bashi a poskytneme podrobné pokyny, ktoré vám zabezpečia pochopenie.

V tomto tutoriále sa naučíte:

  • Ako vytvoriť shell skript v Bash
  • Ako spustiť shell skript
  • Ako spravovať povolenia na spustenie skriptu
  • Ako spustiť jeden skript z druhého v Bashi

Kroky na spustenie shellového skriptu v Bash

Ak chcete spustiť shell skript v Bash, musíte vytvoriť skript, priradiť spustiteľné povolenia a nakoniec spustiť skript vo vašom termináli. Poďme krok za krokom.

  1. Vytvorenie shellového skriptu:
    Prvým krokom pri spustení shellového skriptu v Bash je vytvorenie skutočného súboru bash scriptu. Shell skript je v podstate obyčajný textový súbor obsahujúci sériu príkazov, ktoré sa vykonávajú postupne. Tento súbor môžete vytvoriť pomocou textového editora, ako je napríklad nano alebo vim.

    $ nano myscript.sh

    Po otvorení textového editora môžete do skriptu napísať požadované príkazy. Napríklad:

    #!/bin/bash
    echo "Hello, World!"

    Riadok #!/bin/bash v hornej časti súboru hovorí operačnému systému, že tento skript by mal byť spustený pomocou prostredia Bash. Príkaz echo vytlačí text na obrazovku.

  2. Po dokončení písania skriptu uložte a ukončite textový editor. Ak používate nano, stlačte kombináciu klávesov CTRL + X, potom Y na potvrdenie uloženia a stlačením klávesu Enter ukončite.

  3. Urobte skript spustiteľným:
    Pred spustením skriptu ho musíte nastaviť ako spustiteľný. Tým sa zabezpečí, že systém ho rozpozná ako program, ktorý je možné spustiť. Pomocou príkazu chmod upravte povolenia skriptu.

    $ chmod +x myscript.sh
  4. Tento príkaz udeľuje skriptu povolenia na spustenie, čo umožňuje jeho spustenie systémom.

  5. Spustite shell skript:
    Po vytvorení spustiteľného skriptu ho teraz môžete spustiť. Ak to chcete urobiť, prejdite do adresára, v ktorom sa nachádza váš skript, a spustite ho zadaním:

    $ ./myscript.sh
  6. Príkaz ./ povie terminálu, aby vyhľadal skript v aktuálnom adresári. Skript sa spustí a na termináli by ste mali vidieť výstup Hello, World!.

  7. Spustenie skriptu z iného skriptu v Bash:
    Niekedy môže byť potrebné spustiť jeden skript z iného skriptu v Bash. Môžete to urobiť buď poskytnutím úplnej cesty, alebo použitím relatívnej cesty, v závislosti od vašich požiadaviek.

    • Použitie relatívnej cesty: Relatívna cesta odkazuje na umiestnenie skriptu vo vzťahu k aktuálnemu pracovnému adresáru (adresár, z ktorého spúšťate skript). Tu je postup, ako môžete spustiť ďalší skript pomocou relatívnej cesty:

      #!/bin/bash
      ./myscript.sh
      echo "Main script executed!"
    • V tomto príklade ./myscript.sh odkazuje na skript, ktorý je v rovnakom adresári ako hlavný skript. Znak ./ označuje aktuálny adresár, takže Bash vie, že má hľadať myscript.sh v rovnakom priečinku.

    • Použitie úplnej cesty: Úplná alebo absolútna cesta určuje presné umiestnenie skriptu, počnúc koreňovým adresárom. Táto metóda je užitočná, ak sa skript, ktorý chcete spustiť, nachádza v inom adresári alebo ak chcete zabezpečiť, aby bol skript spustený bez ohľadu na aktuálny adresár.

      #!/bin/bash
      /home/user/scripts/myscript.sh
      echo "Main script executed!"
    • V tomto prípade /home/user/scripts/myscript.sh odkazuje na presné umiestnenie skriptu. Bez ohľadu na to, kde sa nachádza hlavný skript, vždy spustí another_script.sh umiestnený v /home/user/scripts/.

    Rozdiel medzi relatívnou a úplnou cestou:

    • Relatívna cesta: Flexibilná, ale závisí od toho, odkiaľ je spustený hlavný skript. Funguje to iba vtedy, ak sú dva skripty v rovnakom adresári alebo na predvídateľnom relatívnom mieste.
    • Úplná cesta: Zabezpečuje, aby sa vždy spustil správny skript bez ohľadu na to, odkiaľ sa hlavný skript spúšťa. Ideálne je, keď sú skripty uložené v rôznych adresároch alebo keď chcete mať väčšiu kontrolu nad vykonávaním.

    Výberom vhodnej metódy môžete jednoducho spravovať vykonávanie skriptov v rôznych adresároch alebo prostrediach.

  8. Spustite skript pomocou príkazu bash:
    Prípadne môžete spustiť skript prostredia pomocou príkazu bash bez toho, aby bol spustiteľný. Je to užitočné, ak nechcete meniť povolenia súborov.

    $ bash myscript.sh

    Tento príkaz spustí skript priamo pomocou interpreta Bash, čím sa obíde potreba povolení spustiteľných súborov.

Záver

Podľa

týchto krokov môžete jednoducho vytvárať, spúšťať a spravovať shellové skripty v Bash. Či už automatizujete úlohy, spravujete súbory alebo spúšťate skripty z iných skriptov, zvládnutie tejto zručnosti výrazne zvýši vašu produktivitu a efektivitu v systéme Linux. Pochopenie toho, ako spustiť shell skript v Bash, otvára nekonečné možnosti automatizácie a správy systému.

FAQ:

1. Ako vytvorím spustiteľný shell script?

Ak chcete vytvoriť spustiteľný skript prostredia, použite nasledujúci príkaz:

$ chmod +x script_name.sh

To udeľuje povolenia na spustenie, čo umožňuje spustenie skriptu.

2. Aká je bežná chyba: "Povolenie zamietnuté" pri spustení skriptu?

Táto chyba sa vyskytuje, keď skript nemá povolenia na spustiteľné súbory. Pomocou príkazu chmod +x urobte skript spustiteľným:

$ chmod +x script_name.sh

3. Ako spustím skript v Bashi bez toho, aby bol spustiteľný?

Skript môžete spustiť priamo pomocou príkazu Bash:

$ bash script_name.sh

4. Čo znamená "Žiadny takýto súbor alebo adresár"?

Táto chyba zvyčajne znamená, že skript nie je možné nájsť v zadanej ceste. Uistite sa, že ste v správnom adresári alebo použite úplnú cestu k skriptu:

$ ./script_name.sh

pre relatívne cesty alebo použite celú cestu, ako napríklad:

$ /home/user/script_name.sh

5. Ako môžem spustiť skript z iného skriptu v Bash?

Ďalší skript môžete spustiť tak, že ho zavoláte v rámci hlavného skriptu pomocou relatívnej alebo úplnej cesty:

./another_script.sh

(príbuzný) alebo

/home/user/another_script.sh

(úplná cesta).

6. Čo znamená "príkaz sa nenašiel" pri vykonávaní skriptu?

Táto chyba znamená, že Bash nemôže nájsť skript v aktuálnom adresári. Uistite sa, že ste pred názvom skriptu zahrnuli ./, ak je skript vo vašom aktuálnom adresári:

$ ./script_name.sh

7. Môžem spustiť skript ako používateľ root?

Áno, skript s oprávneniami root môžete spustiť pomocou sudo:

$ sudo ./script_name.sh

Vyžaduje sa to, ak skript potrebuje upraviť systémové súbory alebo vykonať administratívne úlohy.

8. Ako odladím skript Bash?

Ak chcete ladiť skript Bash, môžete ho spustiť s možnosťou -x:

$ bash -x script_name.sh

Tým sa vytlačí každý príkaz pred jeho vykonaním, čo vám pomôže vystopovať chyby alebo neočakávané správanie.

Súvisiace články: