Looge oma skriptid bashi abil

Linuxi õppimine

Sõltumata kasutatavast Linuxi levitamisest, ― pole kahtlust, et minu lemmik on Ubuntu― kohe, kui selle süsteemi kasutama hakkame automatiseerimisvajadused. See tähendab: loo meie enda käsud mis täidavad teatud käske isikupärastatud viisil. See vajadus võib olla tingitud teatud põhjustest:

  • Lihtsustage süntaksit käskudest, mida me tavaliselt täidame.
  • Tehke toiminguid, mis hõlmavad kõiki vajadust, mida süsteemis ette ei nähta töökorras.
  • Järjekorrad mida me usinalt kordame.

Ehkki bashi skripti saab käivitada mis tahes kataloogis / mis tahes, on see tavaliselt nii looge nende skriptide hostimiseks kataloog. Minu puhul:

$ mkdir /home/pedro/.bin

Ma usun seda kataloog (peidetud nime ees punktiga juhtides) hoida kõiki skripte, mida ma seal kasutan. Sellel, et kataloogi nimi on peidetud, pole muud tähendust kui - kui pole sõnaselgelt öeldud teisiti - ei kuvata failivaaturist / home / pedro kuvamisel graafilises režiimis.

Nüüd peate teavitage Linuxi, et see peaks ka sinna vaatama (/home/pedro/.bin) terminalist täidetavad korraldused.

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

Nii otsib süsteem meie tellimusi sealt kuni seansi sulgeme. Selle ühenduse püsivaks muutmiseks:

$ sudo nano /etc/environment

ja lisame

:/home/pedro/.bin

rea PATH lõpus on väga oluline mitte unustada koolonit ka kataloogi aadressi ees, kuna see on liitmismehhanism.

Meie esimene samm-sammult skript

Me loome oma faili, minu puhul nii:

$ touch ~/.bin/donde

Ja selle muutmiseks võite kasutada eelistatud redaktorit või järgida seda näidustust:

$ gedit ~/.bin/donde &

Ja lisame järgmise sisu:

#!/usr/bin/env bash

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

Skripti analüüs

Meie esimene kõneliin «seebang»(#! / Usr / bin / env bash) paluge Linuxil teatada kus asub bashi kest ja see, mis järgneb, täidetakse vastavalt bashi nõuetele. See ettevaatusabinõu selles on mugav veenduda meie skriptid töötavad mis tahes installimisel. Teine võimalik seebang ta naeris:

#!/bin/bash

Nende vahe võib olla väga kohutav ja ma seletan seda. Selles viimases Eeldan, et meie süsteemis bashi kest asub aadressil / bin / bash. Kui aga pakun stsenaariumis välja Ma ei tea vist, kus see asub bashi tõlk. Ma palun süsteemilt, et ta selle aadressi esitaks.

Kolmas rida: Nagu näete, on teine ​​rida if. Bashi jaoks tähemärgid «$#« sisaldab parameetrite arvu, mille edastame käsurealt. Seetõttu »kui [$ # -lt 1];» tähendab sõna otseses mõttes "kui parameetrite arv on väiksem kui 1".

Neljas rida: Siis (sõna otseses mõttes inglise keelest tõlkides: siis), siin näidatakse, et mis edasi saab viiakse läbi siis, kui seisundi hindamine if tõsi olema: teisisõnu, parameetrite arv on väiksem kui 1, see tähendab null.

Viies rida: kui käivitame oma skripti ilma parameetriteta, kuvatakse terminalis «Peate parameetri edastama».

Kuues rida: Näitab, et järgnev täidetakse kui meie deklareeritud tingimus ei vasta tõele.

Seitsmes rida: Se käivitage käsk «kus on« kaasas sisu, mille oleme edastanud esimene parameeter.

Kaheksas rida:fi»Näitab, et plokk lõpeb if.

Meie skripti testimine

On oluline lisage kirjutamisõigused skripti juurde:

$ chmod -x ~/.bin/donde

Ilma selleta ilmub viga "luba keelatud".. Pärast seda saame oma skripti käivitada.

$ donde php

See peaks meile näitama php binaaride asukohta, nende lähtefaile ja manulehti. Midagi sellist:

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

Kokkuvõte

  • Lubame a kataloog ".bin" meie skriptide paigutamiseks.
  • Me varustame teave Linuxile selle kataloogi kaasamiseks käsuotsingutesse.
  • Me loome oma skripti.
  • Erinevus erinevad seebang.
  • Kasutamine parameetritega $ # edastatud arv.
  • Kasutamine esimene parameeter koos $1.

Loodan ja soovin, et see skript oleks teile kasulik.


Artikli sisu järgib meie põhimõtteid toimetuse eetika. Veast teatamiseks klõpsake nuppu siin.

4 kommentaari, jätke oma

Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata.

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   Miguel DIJO

    Väga hea ja hästi selgitatud, kuid millele viitab parameeter?

    1.    Pedro Ruiz Hidalgo kohatäide DIJO

      Aitäh Miguel!

      Mõistan parameetrite järgi kogu täiendavat teavet, mis antakse programmile, funktsioonile või süsteemile. Kuna see võib olla tülikas, lubage mul vastata teile mõne näite abil.

      Linuxi käsus faili a.txt kopeerimiseks faili b.txt kirjutaksime järgmise:

      $ Ap a.txt b.txt

      Siin saab cp-programm vastu kaks parameetrit, mis on kahe faili nimed, esimene (peab olemas olema) a.txt ja teine ​​b.txt.

      Teine näide: kui saadate käsuga konsoolilt printimiseks

      $ lp fail.pdf

      Sel juhul on "file.pdf" lp-i parameeter.

      Loodan, et olen teie kahtlustega rahul olnud.

      seoses

  2.   Miguel DIJO

    Minu kommentaarid ei tule välja, see on austuse puudumine, ma ei naase siia foorumisse.

    1.    Pedro Ruiz Hidalgo kohatäide DIJO

      Ma ei tea, mis on juhtunud, igal juhul on see avaldatud.

      Tervitused.