Sukurkite savo scenarijus naudodami „bash“

Mokytis „Linux“

Nepriklausomai nuo naudojamo „Linux“ paskirstymo, neabejokite, kad mano mėgstamiausias yra „Ubuntu“, kai tik pradėsime naudotis šia sistema automatikos poreikius. Tai reiškia: sukurkite savo savo komandas kurie asmeniškai atlieka tam tikras komandas. Šį poreikį gali lemti tam tikros priežastys:

  • Supaprastinkite sintaksę komandų, kurias paprastai vykdome.
  • Imkitės veiksmų, apimančių bet kurį poreikio, kuris nėra numatytas sistemoje operatyvus.
  • Eilės tvarka kad mes atkakliai kartojame.

Nors „bash“ scenarijų galima paleisti / iš bet kurio katalogo, jis paprastai yra sukurkite katalogą, kuriame būtų šie scenarijai. Mano atveju:

$ mkdir /home/pedro/.bin

Aš tuo tikiu katalogas (paslėptas vedant tašką prieš vardą) laikyti visus scenarijus, kuriuos ten naudoju. Tai, kad katalogo pavadinimas yra paslėptas, neturi jokios kitos reikšmės, išskyrus tuos atvejus, kai aiškiai nenurodyta kitaip - nebus rodomas žiūrint / home / pedro iš failų peržiūros priemonės grafiniu režimu.

Dabar jūs turite informuokite „Linux“, kad jis taip pat turėtų atrodyti ten (/home/pedro/.bin) pavedimai, kurie vykdomi iš terminalo.

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

Tokiu būdu sistema ieškos mūsų užsakymų ten kol uždarysime sesiją. Kad ši asociacija būtų nuolatinė:

$ sudo nano /etc/environment

ir mes pridedame

:/home/pedro/.bin

PATH eilutės pabaigoje labai svarbu nepamiršti dvitaškio prieš katalogo adresą, kurį įtraukiame, nes tai yra papildymo mechanizmas.

Pirmasis mūsų žingsnis po žingsnio scenarijus

Mes kuriame savo failą, kaip mano atveju:

$ touch ~/.bin/donde

Norėdami jį redaguoti, galite naudoti pageidaujamą redaktorių arba vadovautis šia nuoroda:

$ gedit ~/.bin/donde &

Pridedame šį turinį:

#!/usr/bin/env bash

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

Scenarijaus analizė

Pirmoji mūsų skambučio linija «šebangas»(#! / Usr / bin / env bash) paprašykite „Linux“ pranešti kur yra bash apvalkalas ir tai, kas seka, vykdoma pagal Bašo reikalavimus. Ši atsargumo priemonė patogu tuo įsitikinti mūsų scenarijai veikia bet kokioje instaliacijoje. Kitas galimas šebangas jis nusijuokė:

#!/bin/bash

Skirtumas tarp jų gali būti labai keistas, ir aš tai paaiškinsiu. Šiame paskutiniame Aš manau, kad tai mūsų sistemoje „bash“ apvalkalas yra adresu / bin / bash. Tačiau ten, kur siūlau scenarijuje Spėju, kad nežinau, kur jis yra bash vertėjas. Prašau sistemos, kad jis nurodytų tą adresą.

Trečia eilutė: Kaip matote, antroji eilutė yra if. Dėl bash simbolių «$#« yra parametrų, kuriuos perduodame iš komandinės eilutės, skaičius. Todėl »jei [$ # -lt 1];» pažodžiui reiškia "jei parametrų skaičius yra mažesnis nei 1".

Ketvirta eilutė: Tada (pažodžiui verčiant iš anglų kalbos: tada), čia nurodoma, kad kas bus toliau bus įvykdytas, kai bus įvertintas būklė if būti tiesa: kitaip tariant, parametrų skaičius yra mažesnis nei 1, tai yra, nulis.

Penkta eilutė: Jei vykdysime scenarijų be jokių parametrų, terminale parodysime „Jums reikia perduoti parametrą“.

Šeštoji eilutė: Nurodo, kad tai, kas bus toliau, bus įvykdyta kai mūsų deklaruota sąlyga nėra teisinga.

Septintoji eilutė: Žr paleisti komandą «kur yra« kartu su turiniu, kurį perdavėme pirmasis parametras.

Aštuntoji eilutė: su «fi»Nurodo, kad blokas baigiasi if.

Testuojame mūsų scenarijų

Svarbu pridėti rašymo teises prie scenarijaus:

$ chmod -x ~/.bin/donde

Be šio veiksmo atsiras klaida „atsisakyta suteikti leidimą“.. Po to galime paleisti scenarijų.

$ donde php

Tai turėtų mums parodyti php dvejetainių failų, jų šaltinių failų ir žmogaus puslapių vietą. Kažkas panašaus:

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

Prisiminimas

  • Mes įgaliname a katalogą „.bin“, kuriame bus mūsų scenarijai.
  • Mes tiekiame informacijos „Linux“, kad šis katalogas būtų įtrauktas į komandų paieškas.
  • Mes kuriame savo scenarijų.
  • Skirtumas tarp skirtingi šebangas.
  • Naudojimas parametrų, perduotų naudojant $ #, skaičius.
  • Naudojimas pirmasis parametras su $1.

Tikiuosi ir linkiu, kad šis scenarijus būtų jums naudingas.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   miguel sakė

    Labai gerai ir gerai paaiškinta, bet ką reiškia parametras?

    1.    Pedro Ruiz Hidalgo vietos rezervavimo įvaizdis sakė

      Ačiū Migueliui!

      Pagal parametrą suprantu visą papildomą informaciją, teikiamą programai, funkcijai ar sistemai. Kadangi tai gali būti sudėtinga, leiskite man atsakyti jums su keliais pavyzdžiais.

      „Linux“ komandoje, norėdami nukopijuoti failą a.txt į failą b.txt, parašysime taip:

      $cp a.txt b.txt

      CP programa čia gauna du parametrus, kurie yra dviejų failų pavadinimai, pirmasis (turi egzistuoti) a.txt ir antrasis b.txt.

      Kitas pavyzdys: jei siunčiate spausdinti iš konsolės su komanda

      $ lp failas.pdf

      Šiuo atveju „file.pdf“ yra programos lp parametras.

      Tikiuosi, kad patenkinau jūsų abejones.

      saludos

  2.   miguel sakė

    Mano komentarai neišeina, tai yra pagarbos trūkumas, aš negrįžtu į šį forumą.

    1.    Pedro Ruiz Hidalgo vietos rezervavimo įvaizdis sakė

      Nežinau, kas nutiko, bet kokiu atveju jis buvo paskelbtas.

      Sveikinimai.