Kreirajte vlastite skripte koristeći bash

Učenje Linuxa

Bez obzira na Linux distribuciju koju koristimo, „ne sumnjam da mi je najdraži Ubuntu― čim uđemo u upotrebu ovog sistema, izvjesni potrebe automatizacije. To će reći: stvorite naše vlastite naredbe koji izvršavaju određene naredbe na personalizirani način. Ova potreba može biti posljedica određenih uzroka:

  • Pojednostavite sintaksu naredbi koje obično izvršavamo.
  • Poduzmite radnje koje pokrivaju bilo koje potreba koja nije predviđena u sistemu operativni.
  • Redoslijed redoslijeda što marljivo ponavljamo.

Iako se bash skripta može pokrenuti u / iz bilo kojeg direktorija, to je obično kreirajte direktorij za hostiranje ovih skripti. U mom slučaju:

$ mkdir /home/pedro/.bin

Ja vjerujem u ovo direktorij (skriven vodećom tačkom ispred imena) da tamo držim sve skripte koje koristim. To što je ime direktorija skriveno nema drugo značenje osim - osim ako nije izričito navedeno drugačije - neće se pojaviti prilikom pregleda / home / pedro iz preglednika datoteka u grafičkom načinu.

Sad moraš obavijestite Linux da bi i tamo trebao potražiti (/home/pedro/.bin) nalozi koji se izvršavaju s terminala.

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

Na taj način, sistem će tamo tražiti naše narudžbe dok ne zatvorimo sesiju. Da ovo udruženje postane trajno:

$ sudo nano /etc/environment

i dodajemo

:/home/pedro/.bin

na kraju retka PATH, vrlo je važno ne zaboraviti dvotačku prije adrese direktorija koji uključujemo, jer ovo je mehanizam sabiranja.

Naš prvi korak po korak skripta

Mi kreiramo našu datoteku, poput ove u mom slučaju:

$ touch ~/.bin/donde

A da biste ga uredili, možete koristiti željeni uređivač ili slijediti ovu indikaciju:

$ gedit ~/.bin/donde &

I dodajemo sljedeći sadržaj:

#!/usr/bin/env bash

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

Analiza skripte

Naša prva linija poziva «shebang»(#! / Usr / bin / env bash) zamolite Linux da izvještava gdje se nalazi bash školjka i da se ono što slijedi izvršava prema bashovim zahtjevima. Ova predostrožnost zgodno je to osigurati naše skripte rade na bilo kojoj instalaciji. Još jedno moguće shebang nasmijao se:

#!/bin/bash

Razlika između njih može biti vrlo zastrašujuća i objasnit ću vam. U ovom posljednjem Pretpostavljam da je to u našem sistemu bash ljuska je na / bin / bash adresi. Međutim, tamo gdje predlažem u scenariju Pretpostavljam da ne znam gdje je bash tumač. Molim sistem da on navede tu adresu.

Treći red: Kao što vidite, drugi redak je if. Za bash likove «$#« sadrže broj parametara koje prenosimo iz naredbenog retka. Prema tome, »if [$ # -lt 1];» doslovno znači "ako je broj parametara manji od 1".

Četvrti red: onda (doslovno prijevod sa engleskog: tada), ovdje je naznačeno da slijedi ono što slijedi izvršit će se kada se izvrši procjena stanja if biti istina: drugim riječima, broj parametara je manji od 1, odnosno nula.

Peti redak: Ako našu skriptu izvršimo bez ikakvih parametara, u terminalu ćemo prikazati «Trebate proslijediti parametar».

Šesti red: Označava da će se izvršiti ono što slijedi kada uslov koji smo proglasili nije istinit.

Sedmi red: Se pokrenite naredbu «gdje je« popraćen sadržajem koji smo proslijedili prvi parametar.

Osmi red: sa «fi»Označava da se blok završava if.

Testiranje naše skripte

Važno je dodajte dozvole za pisanje na skriptu:

$ chmod -x ~/.bin/donde

Bez toga bi se pojavila pogreška "odbijena dozvola".. Nakon toga možemo pokrenuti našu skriptu.

$ donde php

Trebao bi nam pokazati mjesto php binarnih datoteka, njihove izvorne datoteke i upute. Nešto slično tome:

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

Recapping

  • Omogućavamo a direktorij ".bin" za smještaj naših skripti.
  • Mi pružamo informacije za Linux kako bi ovaj direktorij uključio u svoja pretraživanja naredbi.
  • Mi kreiramo našu skriptu.
  • Razlika između različiti shebang.
  • Korištenje broj parametara prosljeđenih sa $ #.
  • Korištenje prvi parametar con $1.

Nadam se i želim da vam je ova skripta korisna.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Miguel rekao je

    Vrlo dobro i dobro objašnjeno, ali na što se odnosi parametar?

    1.    Slika rezervnog mjesta Pedro Ruiz Hidalgo rekao je

      Hvala Miguel!

      Pod parametrom razumijem sve komplementarne informacije koje se dostavljaju programu, funkciji ili sistemu. Kako ovo može biti glomazno, dopustiću vam da vam odgovorim s nekoliko primjera.

      U linux naredbi za kopiranje datoteke a.txt u datoteku b.txt napisali bismo sljedeće:

      $cp a.txt b.txt

      Ovdje cp program prima dva parametra koja su imena dviju datoteka, prve (mora postojati) a.txt i druge b.txt.

      Još jedan primjer: Ako naredbu šaljete za ispis iz konzole

      $ lp datoteka.pdf

      U ovom slučaju "file.pdf" je parametar za lp program.

      Nadam se da sam udovoljio vašim sumnjama.

      Saludos

  2.   Miguel rekao je

    Moji komentari ne izlaze, nedostatak je poštovanja, ne vraćam se ponovo na ovaj forum.

    1.    Slika rezervnog mjesta Pedro Ruiz Hidalgo rekao je

      Ne znam šta se dogodilo, u svakom slučaju je objavljeno.

      Pozdrav.