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ý.