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
Veľmi dobré a dobre vysvetlené, ale na čo odkazuje parameter?
Ď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
Moje pripomienky nevychádzajú, je to nedostatok rešpektu, na toto fórum sa už nevraciam.
Neviem, čo sa stalo, každopádne to bolo zverejnené.
Zdravím.