Készítse el saját szkriptjeit a bash használatával

Linux tanulása

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.


4 hozzászólás, hagyd a tiedet

Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   Miguel dijo

    Nagyon jó és jól magyarázható, de mire utal egy paraméter?

    1.    Pedro Ruiz Hidalgo helyőrző kép dijo

      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

  2.   Miguel dijo

    A megjegyzéseim nem derülnek ki, ez a tisztelet hiánya, nem térek vissza erre a fórumra.

    1.    Pedro Ruiz Hidalgo helyőrző kép dijo

      Nem tudom, mi történt, mindenesetre ezt közzétették.

      Üdvözlet.