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.
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 jenapríklad nanoalebovim.$ nano myscript.shPo otvorení textového editora môžete do skriptu napísať požadované príkazy. Napríklad:
#!/bin/bash echo "Hello, World!"Riadok
#!/bin/bashv hornej časti súboru hovorí operačnému systému, že tento skript by mal byť spustený pomocou prostredia Bash. Príkazechovytlačí text na obrazovku.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íkazuchmodupravte povolenia skriptu.$ chmod +x myscript.shSpustite 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.shSpustenie 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.shodkazuje 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.shv 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!" - 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.
- Spustite skript pomocou príkazu bash:
Prípadne môžete spustiť skript prostredia pomocou príkazubashbez toho, aby bol spustiteľný. Je to užitočné, ak nechcete meniť povolenia súborov.$ bash myscript.shTento príkaz spustí skript priamo pomocou interpreta Bash, čím sa obíde potreba povolení spustiteľných súborov.
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.
Tento príkaz udeľuje skriptu povolenia na spustenie, čo umožňuje jeho spustenie systémom.
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!.
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:
Výberom vhodnej metódy môžete jednoducho spravovať vykonávanie skriptov v rôznych adresároch alebo prostrediach.
Záver
Podľatý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.shTo 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.sh3. Ako spustím skript v Bashi bez toho, aby bol spustiteľný?
Skript môžete spustiť priamo pomocou príkazu Bash:
$ bash script_name.sh4. Č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.shpre relatívne cesty alebo použite celú cestu, ako napríklad:
$ /home/user/script_name.sh5. 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.sh7. Môžem spustiť skript ako používateľ root?
Áno, skript s oprávneniami root môžete spustiť pomocou sudo:
$ sudo ./script_name.shVyž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.shTým sa vytlačí každý príkaz pred jeho vykonaním, čo vám pomôže vystopovať chyby alebo neočakávané správanie.
