Izveidojiet savus skriptus, izmantojot bash

Mācās Linux

Neatkarīgi no Linux izplatīšanas, ko mēs izmantojam, "bez šaubām, mans mīļākais ir Ubuntu", tiklīdz mēs sākam izmantot šo sistēmu, noteikti automatizācijas vajadzībām. Tas ir teikt: izveidojiet mūsu savas komandas kas personalizēti izpilda noteiktas komandas. Šī vajadzība var būt dažu iemeslu dēļ:

  • Vienkāršojiet sintaksi no komandām, kuras mēs parasti izpildām.
  • Veiciet darbības, kas attiecas uz jebkuru vajadzība, kas sistēmā nav paredzēta operatīva.
  • Secības pasūtījumi ka mēs neatlaidīgi atkārtojam.

Lai gan bash skriptu var palaist / no jebkura direktorija, tas parasti ir izveidojiet direktoriju šo skriptu mitināšanai. Manā gadījumā:

$ mkdir /home/pedro/.bin

Es tam ticu direktorijs (paslēpts, ievadot punktu nosaukuma priekšā) turēt visus skriptus, kurus es tur izmantoju. Tai, ka direktorijas nosaukums ir paslēpts, nav citas nozīmes kā - ja vien nav skaidri norādīts citādi - neparādīsies, skatot / home / pedro no failu skatītāja grafiskajā režīmā.

Tagad jums tas jādara informējiet Linux, ka tam arī vajadzētu tur meklēt (/home/pedro/.bin) pasūtījumi, kas tiek izpildīti no termināla.

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

Tādā veidā sistēma meklēs mūsu pasūtījumus tur līdz sesiju slēgsim. Lai šī apvienība būtu pastāvīga:

$ sudo nano /etc/environment

un mēs pievienojam

:/home/pedro/.bin

PATH rindas beigās ir ļoti svarīgi neaizmirst kolu pirms direktorijas adreses, kuru mēs iekļaujam, jo tas ir pievienošanas mehānisms.

Mūsu pirmais soli pa solim skripts

Mēs izveidojam savu failu, piemēram, manā gadījumā:

$ touch ~/.bin/donde

Lai to rediģētu, varat izmantot vēlamo redaktoru vai sekot šai norādei:

$ gedit ~/.bin/donde &

Mēs pievienojam šādu saturu:

#!/usr/bin/env bash

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

Skriptu analīze

Mūsu pirmā zvana līnija «zaņķis»(#! / Usr / bin / env bash) lūgt Linux ziņot kur atrodas bash apvalks un tas, kas seko, tiek izpildīts atbilstoši Boša ​​prasībām. Šis piesardzības pasākums par to ir ērti pārliecināties mūsu skripti darbojas jebkurā instalācijā. Vēl viena iespējama zaņķis viņš iesmējās:

#!/bin/bash

Atšķirība starp tām var būt ļoti neparasta, un es to paskaidrošu. Šajā pēdējā Es pieņemu, ka mūsu sistēmā bash apvalks atrodas adresē / bin / bash. Tomēr tur, kur es ierosinu scenārijā Es domāju, ka es nezinu, kur tas atrodas bas tulks. Es lūdzu sistēmu viņam norādīt šo adresi.

Trešā rinda: Kā redzat, otrā rinda ir ja. Par bash rakstzīmes «$#« satur parametru skaitu, ko mēs nododam no komandrindas. Tāpēc »ja [$ # -lt 1];» burtiski nozīmē "ja parametru skaits ir mazāks par 1".

Ceturtā rinda: Tad (burtiski tulkojot no angļu valodas: tad), šeit ir norādīts, ka tas, kas notiks tālāk tiks izpildīts, kad stāvokļa novērtējums if esi patiess: citiem vārdiem sakot, parametru skaits ir mazāks par 1, tas ir, nulle.

Piektā rinda: ja izpildīsim skriptu bez parametriem, terminālā parādīsim «Jums ir jānodod parametrs».

Sestā līnija: Norāda, ka sekojošais tiks izpildīts kad mūsu deklarētais nosacījums nav patiess.

Septītā līnija: Se palaist komandu «kur ir« pievienots saturs, kuru mēs esam nodevuši pirmais parametrs.

Astotā rinda: ar «fi»Norāda, ka bloks beidzas if.

Pārbauda mūsu skriptu

Ir svarīgi pievienot rakstīšanas atļaujas uz skriptu:

$ chmod -x ~/.bin/donde

Bez tā parādīsies kļūda "atteikta atļauja".. Pēc tam mēs varam palaist mūsu skriptu.

$ donde php

Tam vajadzētu parādīt mums PHP bināro failu, to avota failu un manas lapu atrašanās vietu. Kaut kas tamlīdzīgs:

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

Atkārtojums

  • Mēs iespējojam a direktoriju ".bin", lai ievietotu mūsu skriptus.
  • Mēs nodrošinam informāciju Linux, lai iekļautu šo direktoriju komandu meklējumos.
  • Mēs izveidojam savu scenāriju.
  • Atšķirība starp savādāk zaņķis.
  • Izmantošana ar $ # nodoto parametru skaits.
  • Izmantošana pirmais parametrs ar $1.

Es ceru un vēlos, lai šis skripts jums būtu noderīgs.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   Miguel teica

    Ļoti labi un labi izskaidroti, bet uz ko attiecas parametrs?

    1.    Pedro Ruiza Hidalgo viettura attēls teica

      Paldies Migelam!

      Pēc parametra es saprotu visu papildu informāciju, kas tiek piegādāta programmai, funkcijai vai sistēmai. Tā kā tas var būt apgrūtinoši, ļaujiet man jums atbildēt ar dažiem piemēriem.

      Komandā linux, lai kopētu failu a.txt failā b.txt, mēs rakstīsim šādi:

      $cp a.txt b.txt

      Šeit programma cp saņem divus parametrus, kas ir divu failu nosaukumi: pirmais (jābūt) a.txt un otrais b.txt.

      Vēl viens piemērs: ja sūtāt drukāšanai no konsoles ar komandu

      $ lp fails.pdf

      Šajā gadījumā "file.pdf" ir lp programmas parametrs.

      Es ceru, ka esmu apmierinājis jūsu šaubas.

      Sveicieni

  2.   Miguel teica

    Mani komentāri neiznāk, tas ir cieņas trūkums, es vairs neatgriezos šajā forumā.

    1.    Pedro Ruiza Hidalgo viettura attēls teica

      Es nezinu, kas ir noticis, katrā ziņā tas ir publicēts.

      Sveicieni.