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.
Labai gerai ir gerai paaiškinta, bet ką reiškia parametras?
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
Mano komentarai neišeina, tai yra pagarbos trūkumas, aš negrįžtu į šį forumą.
Nežinau, kas nutiko, bet kokiu atveju jis buvo paskelbtas.
Sveikinimai.