Vytvorte si vlastné skripty pomocou bash

Učenie sa Linuxu

Bez ohľadu na distribúciu Linuxu, ktorú používame, ― niet pochýb o tom, že môj obľúbený je Ubuntu―, hneď ako začneme používať tento systém, určité potreby automatizácie. To znamená: vytvorte náš vlastné príkazy ktoré vykonávajú určité príkazy osobným spôsobom. Táto potreba môže byť spôsobená určitými príčinami:

  • Zjednodušte syntax príkazov, ktoré zvyčajne vykonávame.
  • Vykonajte akcie, ktoré sa vzťahujú na akékoľvek potreba, ktorá sa v systéme nepredpokladá funkčné.
  • Poradie objednávok že vytrvalo opakujeme.

Hoci bash skript je možné spustiť v / z ľubovoľného adresára, je to zvyčajne vytvorte adresár na hosťovanie týchto skriptov. V mojom prípade:

$ mkdir /home/pedro/.bin

Ja tomu verím adresár (skrytý pred bodkou pred menom) aby tam boli všetky skripty, ktoré tam používam. To, že je názov adresára skrytý, nemá žiadny iný význam ako - pokiaľ nie je výslovne uvedené inak - sa nezobrazí pri prezeraní / home / pedro z prehliadača súborov v grafickom režime.

Teraz musíš informujte Linux, že by sa to malo tiež pozrieť tam (/home/pedro/.bin) príkazy, ktoré sa vykonávajú z terminálu.

$ PATH=$PATH;/home/pedro/.bin

Týmto spôsobom tam systém vyhľadá naše objednávky kým reláciu neukončíme. Aby bolo toto združenie trvalé:

$ sudo nano /etc/environment

a pridáme

:/home/pedro/.bin

na konci riadku PATH je veľmi dôležité nezabudnúť na dvojbodku pred adresárom, ktorý zahrňujeme, pretože toto je mechanizmus pridávania.

Náš prvý podrobný skript

Vytvoríme náš súbor, v mojom prípade takto:

$ touch ~/.bin/donde

Ak ho chcete upraviť, môžete použiť preferovaný editor alebo postupovať podľa týchto pokynov:

$ gedit ~/.bin/donde &

A pridáme nasledujúci obsah:

#!/usr/bin/env bash

if [ $# -lt 1 ];
then
    echo "Necesitas pasar un parámetro"
else
    whereis $1
fi

Analýza skriptov

Naša prvá linka hovoru «šebang»(#! / Usr / bin / env bash) požiadať Linux o hlásenie kde sa nachádza bash shell a že to, čo nasleduje, sa vykoná podľa požiadaviek bash. Toto opatrenie je vhodné sa uistiť, že naše skripty fungujú pri akejkoľvek inštalácii. Ďalšia možná šebang smial sa:

#!/bin/bash

Rozdiel medzi nimi môže byť veľmi podivný a vysvetlím to. V tomto poslednom Predpokladám, že v našom systéme bash shell je na adrese / bin / bash. Avšak tam, kde navrhujem v scenári Asi neviem, kde to je tlmočník bash. Žiadam systém, aby túto adresu poskytol.

Tretí riadok: Ako vidíte, druhý riadok je znakom if. Pre bash znaky «$#« obsahovať počet parametrov, ktoré odovzdávame z príkazového riadku. Preto »ak [$ # -lt 1];» doslovne znamená „ak je počet parametrov menší ako 1“.

Štvrtý riadok: Potom sa treba (doslovný preklad z angličtiny: potom), tu je naznačené, čo bude nasledovať sa vykoná pri vyhodnotení stavu if byť pravdivý: inými slovami, počet parametrov je menší ako 1, to znamená nula.

Piaty riadok: Ak vykonáme náš skript bez akýchkoľvek parametrov, ukážeme v termináli «Musíte zadať parameter».

Šiesty riadok: Označuje, že sa vykoná nasledujúce keď podmienka, ktorú sme deklarovali, nie je pravda.

Siedmy riadok: Se spustiť príkaz «kde je« sprevádzaný obsahom, ktorý sme prešli ako prvý parameter.

Ôsmy riadok: s «fi»Označuje, že blok končí if.

Testuje sa náš skript

Je dôležité, pridať oprávnenie na zápis do scenára:

$ chmod -x ~/.bin/donde

Bez toho by sa zobrazila chyba „povolenie odmietnuté“.. Potom môžeme spustiť náš skript.

$ donde php

Malo by nám zobraziť umiestnenie binárnych súborov php, ich zdrojových súborov a manuálových stránok. Niečo také:

php: /usr/bin/php7.0 /usr/bin/php /usr/lib/php /etc/php 
/usr/share/php7.0-readline /usr/share/php7.0-json /usr/share/php7.0-opcache 
/usr/share/php7.0-common /usr/share/php /usr/share/man/man1/php.1.gz

Rekapitulácia

  • Umožňujeme a adresár „.bin“ na umiestnenie našich skriptov.
  • Zabezpečujeme informácie do systému Linux, aby tento adresár zahrnul do svojich vyhľadávaní príkazov.
  • Vytvárame náš skript.
  • Rozdiel medzi rozdielny šebang.
  • Použitie počet parametrov odovzdaných s $ #.
  • Použitie prvý parameter s $1.

Dúfam a želám si, aby bol tento skript pre vás užitočný.


4 komentáre, nechajte svoj

Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   miguel dijo

    Veľmi dobré a dobre vysvetlené, ale na čo odkazuje parameter?

    1.    Zástupný obrázok pre Pedro Ruiz Hidalgo dijo

      Ďakujem Miguel!

      Parametrom rozumiem všetky doplňujúce informácie, ktoré sa dodávajú do programu, funkcie alebo systému. Pretože to môže byť ťažkopádne, dovoľte mi odpovedať na pár príkladov.

      Do príkazu linux na skopírovanie súboru a.txt do súboru b.txt by sme napísali toto:

      $cp a.txt b.txt

      Program cp tu prijíma dva parametre, čo sú názvy dvoch súborov, prvý (musí existovať) a.txt a druhý b.txt.

      Iný príklad: Ak pošlete na tlač z konzoly pomocou príkazu

      $ lp súbor.pdf

      V tomto prípade je súbor „file.pdf“ parametrom programu lp.

      Dúfam, že som uspokojil vaše pochybnosti.

      pozdravy

  2.   miguel dijo

    Moje pripomienky nevychádzajú, je to nedostatok rešpektu, na toto fórum sa už nevraciam.

    1.    Zástupný obrázok pre Pedro Ruiz Hidalgo dijo

      Neviem, čo sa stalo, každopádne to bolo zverejnené.

      Zdravím.