Függetlenül az általunk használt Linux disztribúciótól, ― nem kétséges, hogy a kedvencem az Ubuntu―, amint belekezdünk ennek a rendszerbe, bizonyos automatizálási igények. Vagyis: hozza létre a mi saját parancsokat amelyek személyre szabottan hajtanak végre bizonyos parancsokat. Ennek az igénynek bizonyos okai lehetnek:
- Egyszerűsítse a szintaxist a parancsok közül, amelyeket általában végrehajtunk.
- Bármelyre kiterjedő intézkedéseket tegyen a rendszerben nem előrelátható szükséglet működőképes.
- Sorrendek hogy szorgalmasan ismételjük.
Bár egy bash szkript futtatható bármely könyvtárban / bármely könyvtárból, általában az hozzon létre egy könyvtárat a szkriptek tárolására. Esetemben:
$ mkdir /home/pedro/.bin
Ezt elhiszem könyvtár (elrejtve a periódus vezetésével a név előtt) hogy ott tartsam az összes általam használt szkriptet. Annak, hogy a könyvtár neve el van rejtve, nincs más jelentése, csak - hacsak kifejezetten másként nem írjuk - nem jelenik meg, amikor a / home / pedro fájlt nézi grafikus módban.
Most meg kell tájékoztassa a Linuxot, hogy ott is meg kell néznie (/home/pedro/.bin) a terminálról végrehajtott megbízások.
$ PATH=$PATH;/home/pedro/.bin
Ily módon a rendszer ott keresi megrendeléseinket amíg be nem zárjuk az ülést. Hogy ez az egyesület állandó legyen:
$ sudo nano /etc/environment
és hozzátesszük
:/home/pedro/.bin
a PATH sor végén nagyon fontos, hogy ne felejtsük el a kettőspontot a könyvtár címe előtt, amelyet felveszünk, mivel ez az összeadási mechanizmus.
Első lépésről lépésre forgatókönyvünk
Létrehozzuk a fájlunkat, esetemben így:
$ touch ~/.bin/donde
A szerkesztéshez használhatja a kívánt szerkesztőt, vagy kövesse ezt a jelzést:
$ gedit ~/.bin/donde &
És hozzáadjuk a következő tartalmat:
#!/usr/bin/env bash if [ $# -lt 1 ]; then echo "Necesitas pasar un parámetro" else whereis $1 fi
Script elemzés
Első hívó vonalunk «kunyhó»(#! / Usr / bin / env bash) kérje meg a Linuxot, hogy jelentse ahol a bash héj található és hogy mi következik, azt Bash követelményeinek megfelelően hajtják végre. Ez az elővigyázatosság kényelmes megbizonyosodni arról szkriptjeink bármilyen telepítésnél működnek. Egy másik lehetséges kunyhó nevetett:
#!/bin/bash
A különbség közöttük nagyon furcsa lehet, és elmagyarázom. Ebben az utolsóban Feltételezem, hogy a rendszerünkben a bash shell a / bin / bash címen található. Azonban ahol javaslom a forgatókönyvben Azt hiszem, nem tudom, hol van a bash tolmács. Kérem a rendszert, hogy adja meg ezt a címet.
Harmadik sor: Amint láthatja, a második sor egy if. A bash számára a karakterek «$#« tartalmazza a parancssorból átadott paraméterek számát. Ezért »ha [$ # -lt 1];» szó szerint azt jelenti, "ha a paraméterek száma kevesebb, mint 1".
Negyedik sor: Majd (szó szerint angolból fordítva: akkor), itt jelzik, hogy mi következik állapotfelméréskor kerül végrehajtásra if igaznak lenni: más szavakkal, a paraméterek száma kevesebb, mint 1, azaz nulla.
Ötödik sor: Ha a szkriptünket paraméterek nélkül hajtjuk végre, akkor a terminálon megjelenik a «Be kell adnod egy paramétert».
Hatodik sor: Azt jelzi, hogy a következőket végrehajtják amikor az általunk deklarált feltétel nem igaz.
Hetedik sor: Se futtassa a parancsot «hol van« az általunk átadott tartalom kíséretében első paraméter.
Nyolcadik sor: «fi»Jelzi, hogy a blokk véget ér if.
Szkriptünk tesztelése
Fontos írási engedélyeket adhat hozzá a szkripthez:
$ chmod -x ~/.bin/donde
Enélkül egy "engedély megtagadva" hiba jelenik meg.. Ezt követően futtathatjuk a szkriptünket.
$ donde php
Meg kell mutatnia a php binárisok, a forrásfájlok és a man oldalak helyét. Valami hasonló:
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
Összefoglalás
- Engedélyezzük a ".bin" könyvtár a szkriptjeink elhelyezéséhez.
- Biztosítjuk információkat a Linux számára, hogy a könyvtár bekerüljön a parancskeresésbe.
- Mi készítjük a szkriptünket.
- A különbség köztük különböző kunyhó.
- Használata átadott paraméterek száma a # # értékkel.
- Használata első paraméter a $1.
Remélem és kívánom, hogy ez a szkript hasznos legyen az Ön számára.
Nagyon jó és jól magyarázható, de mire utal egy paraméter?
Köszönöm Miguel!
Paraméterekkel megértem az összes kiegészítő információt, amelyet egy programhoz, funkcióhoz vagy rendszerhez juttatnak. Mivel ez nehézkes lehet, hadd válaszoljak néhány példával.
Az a.txt fájl b.txt fájlba másolásához a linux parancsban a következőket írjuk:
$cp a.txt b.txt
A cp program itt két paramétert kap, amelyek két fájl neve, az első (léteznie kell) a.txt és a második b.txt.
Egy másik példa: Ha nyomtatásra küld a konzolról a paranccsal
$ lp fájl.pdf
Ebben az esetben a "file.pdf" az lp program paramétere.
Remélem, kielégítettem kétségeit.
Üdvözlet
A megjegyzéseim nem derülnek ki, ez a tisztelet hiánya, nem térek vissza erre a fórumra.
Nem tudom, mi történt, mindenesetre ezt közzétették.
Üdvözlet.