Ustvari svoje skripte z uporabo basha

Učenje Linuxa

Ne glede na distribucijo Linuxa, ki jo uporabljamo, "nedvomno je moj najljubši Ubuntu", takoj ko začnemo uporabljati ta sistem, nekateri potrebe avtomatizacije. Se pravi: ustvarite našo lastni ukazi ki izvajajo določene ukaze na personaliziran način. Ta potreba je lahko posledica nekaterih vzrokov:

  • Poenostavite skladnjo ukazov, ki jih običajno izvajamo.
  • Ukrepajte, ki zajema katero koli potrebe, ki v sistemu ni predvidena operativni.
  • Naročila v zaporedju ki ga pridno ponavljamo.

Čeprav je skript bash mogoče zagnati v / iz katerega koli imenika, je običajno ustvari imenik za gostovanje teh skriptov. V mojem primeru:

$ mkdir /home/pedro/.bin

Verjamem v to imenik (skrit z vodenjem pike pred imenom) da imam tam vse skripte, ki jih uporabljam. To, da je ime imenika skrito, nima drugega pomena, razen če ni izrecno določeno drugače, ne bo prikazan med ogledom / domov / pedro iz pregledovalnika datotek v grafičnem načinu.

Zdaj moraš obvestite Linux, da bi moral tudi tam iskati (/home/pedro/.bin) naročila, ki se izvajajo s terminala.

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

Na ta način bo sistem tam iskal naša naročila dokler ne zaključimo seje. Da to združenje postane trajno:

$ sudo nano /etc/environment

in dodajamo

:/home/pedro/.bin

na koncu vrstice PATH je zelo pomembno, da ne pozabite dvopičja pred naslovom imenika, ki ga vključujemo, saj to je mehanizem dodajanja.

Naš prvi skript po korakih

Ustvarimo svojo datoteko, tako kot v tem primeru:

$ touch ~/.bin/donde

Če ga želite urediti, lahko uporabite želeni urejevalnik ali sledite tem navodilom:

$ gedit ~/.bin/donde &

In dodamo naslednjo vsebino:

#!/usr/bin/env bash

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

Analiza skript

Naša prva klicna linija «shebang»(#! / Usr / bin / env bash) prosite Linux, da poroča kje se nahaja lupina bash in da se tisto, kar sledi, izvede v skladu z zahtevami basha. Ta previdnostni ukrep priročno je zagotoviti, da naši skripti delujejo na kateri koli namestitvi. Druga možna shebang se je zasmejal:

#!/bin/bash

Razlika med njima je lahko zelo čudna in to bom razložil. V tej zadnji Predvidevam, da v našem sistemu lupina bash je na naslovu / bin / bash. Vendar, kjer predlagam v scenariju Mislim, da ne vem, kje je bash tolmač. Prosim sistem, naj mu navede ta naslov.

Tretja vrstica: Kot vidite, je druga vrstica if. Za bash znakov «$#« vsebuje število parametrov, ki jih prenašamo iz ukazne vrstice. Zato »if [$ # -lt 1];» dobesedno pomeni "če je število parametrov manjše od 1".

Četrta vrstica: Potem (v dobesednem prevodu iz angleščine: potem), tukaj je navedeno, kaj sledi bo izveden, ko bo ocena stanja if Bodi resničen: z drugimi besedami, število parametrov je manjše od 1, to je nič.

Peta vrstica: Če izvajamo skript brez kakršnih koli parametrov, bomo v terminalu prikazali «Parameter morate predati».

Šesta vrstica: Označuje, da se bo izvedlo naslednje kadar pogoj, ki smo ga razglasili, ne drži.

Sedma vrstica: Se zaženite ukaz «kje je« skupaj z vsebino, ki smo jo podali prvi parameter.

Osma vrstica: z «fi»Označuje, da se blok konča if.

Testiranje našega skripta

Pomembno je, dodaj dovoljenja za pisanje na skript:

$ chmod -x ~/.bin/donde

Brez tega bi se pojavila napaka "dovoljenje zavrnjeno".. Po tem lahko zaženemo svoj skript.

$ donde php

Prikazati nam mora lokacijo php binarnih datotek, njihove izvorne datoteke in strani z informacijami. Nekaj ​​takega:

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

Povzetek

  • Omogočamo a ".bin" za shranjevanje naših skriptov.
  • Zagotavljamo informacije za Linux, da ta imenik vključi v svoja iskanja po ukazih.
  • Ustvarimo naš scenarij.
  • Razlika med drugačen shebang.
  • Uporaba število parametrov, prenesenih s $ #.
  • Uporaba prvi parameter z $1.

Upam in želim, da je ta scenarij koristen za vas.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   Miguel je dejal

    Zelo dobro in dobro razloženo, toda na kaj se nanaša parameter?

    1.    Slika nadomestnega znaka Pedro Ruiz Hidalgo je dejal

      Hvala Miguel!

      Pod parametrom razumem vse dopolnilne informacije, ki so posredovane programu, funkciji ali sistemu. Ker je to lahko okorno, naj vam odgovorim z nekaj primeri.

      V ukaz linux za kopiranje datoteke a.txt v datoteko b.txt bi zapisali naslednje:

      $cp a.txt b.txt

      Tukaj program cp prejme dva parametra, ki sta imeni dveh datotek, prve (mora obstajati) a.txt in druge b.txt.

      Drug primer: če pošljete v ukaz za tiskanje iz konzole

      $ lp datoteka.pdf

      V tem primeru je "file.pdf" parameter za lp program.

      Upam, da sem zadovoljila vaše dvome.

      pozdrav

  2.   Miguel je dejal

    Moji komentarji se ne pojavijo, gre za pomanjkanje spoštovanja, na ta forum se ne vrnem več.

    1.    Slika nadomestnega znaka Pedro Ruiz Hidalgo je dejal

      Ne vem, kaj se je zgodilo, v vsakem primeru je bilo objavljeno.

      Lep pozdrav.