Stvorite vlastite skripte pomoću basha

Učenje Linuxa

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

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

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

$ mkdir /home/pedro/.bin

Vjerujem u ovo direktorij (skriven vođenjem točke ispred imena) da tamo držim sve skripte koje koristim. Da je ime direktorija skriveno, nema drugo značenje osim - ako nije izričito navedeno drugačije - neće se pojaviti prilikom gledanja / 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 će način sustav 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 zbrajanja.

Naša prva skripta korak po korak

Izrađujemo svoju datoteku, kao u ovom slučaju u ovom slučaju:

$ touch ~/.bin/donde

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

$ 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 «šajkača»(#! / Usr / bin / env bash) zamolite Linux da izvijesti gdje se nalazi bashova ljuska i da se ono što slijedi izvršava prema bashovim zahtjevima. Ova mjera opreza prikladno je osigurati da naše skripte rade na bilo kojoj instalaciji. Još jedna moguća šajkača on se smijao:

#!/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 sustavu bash ljuska nalazi se na / bin / bash adresi. Međutim, tamo gdje predlažem u scenariju Valjda ne znam gdje je bash tumač. Molim sustav da on navede tu adresu.

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

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

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

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

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

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

Testiranje naše skripte

To je važno dodaj dozvole za pisanje na skriptu:

$ chmod -x ~/.bin/donde

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

$ donde php

Trebao bi nam pokazati mjesto php binarnih datoteka, njihove izvorne datoteke i stranice s uputama. Nešto kao to:

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

Rekapitiranje

  • Omogućujemo a direktorij ".bin" za smještaj naših skripti.
  • Mi opskrbljujemo informacije Linuxu kako bi ovaj direktorij uključio u svoja pretraživanja naredbi.
  • Mi kreiramo našu skriptu.
  • Razlika između drugačiji šajkača.
  • Korištenje broj parametara proslijeđenih s $ #.
  • Korištenje prvi parametar s $1.

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


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Miguel dijo

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

    1.    Slika rezerviranog mjesta Pedro Ruiz Hidalgo dijo

      Hvala Miguel!

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

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

      $cp a.txt b.txt

      Ovdje cp program prima dva parametra koji su imena dviju datoteka, prva (mora postojati) a.txt i druga b.txt.

      Drugi primjer: Ako naredbu šaljete za ispis s konzole

      $ lp datoteka.pdf

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

      Nadam se da sam udovoljio vašim sumnjama.

      pozdravi

  2.   Miguel dijo

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

    1.    Slika rezerviranog mjesta Pedro Ruiz Hidalgo dijo

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

      Pozdrav.