Twórz własne skrypty za pomocą basha

Nauka Linuksa

Bez względu na dystrybucję Linuksa, z której korzystamy, „nie wątpię, że moim ulubionym jest Ubuntu”, gdy tylko zaczniemy używać tego systemu, na pewno potrzeby w zakresie automatyzacji. To znaczy: stwórz nasze własne polecenia które wykonują określone polecenia w spersonalizowany sposób. Potrzeba ta może wynikać z pewnych przyczyn:

  • Uprość składnię poleceń, które zwykle wykonujemy.
  • Podejmij działania, które obejmują dowolne potrzeba, która nie jest przewidziana w systemie operacyjny.
  • Kolejność zamówień które wytrwale powtarzamy.

Chociaż skrypt bash można uruchomić w dowolnym katalogu / z dowolnego katalogu, zwykle tak jest utwórz katalog do hostowania tych skryptów. W moim przypadku:

$ mkdir /home/pedro/.bin

wierzę w to katalog (ukryty przez kropkę przed nazwą) do przechowywania wszystkich skryptów, których tam używam. To, że nazwa katalogu jest ukryta, nie ma innego znaczenia niż - o ile wyraźnie nie określono inaczej - nie pojawi się podczas przeglądania / home / pedro z przeglądarki plików w trybie graficznym.

Teraz musisz poinformuj Linuksa, że ​​powinien tam również zajrzeć (/home/pedro/.bin) zamówienia, które są wykonywane z terminala.

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

W ten sposób system będzie szukał tam naszych zamówień do zamknięcia sesji. Aby to skojarzenie było trwałe:

$ sudo nano /etc/environment

i dodajemy

:/home/pedro/.bin

na końcu linii PATH bardzo ważne jest, aby nie zapomnieć dwukropka przed adresem katalogu, który dołączamy, ponieważ to jest mechanizm dodawania.

Nasz pierwszy skrypt krok po kroku

Tworzymy nasz plik, tak jak w moim przypadku:

$ touch ~/.bin/donde

Aby go edytować, możesz użyć preferowanego edytora lub postępować zgodnie z poniższą wskazówką:

$ gedit ~/.bin/donde &

I dodajemy następującą treść:

#!/usr/bin/env bash

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

Analiza skryptów

Nasza pierwsza linia telefoniczna «szulernia»(#! / Usr / bin / env bash) poproś Linuksa o zgłoszenie gdzie znajduje się powłoka bash a to, co następuje, jest wykonywane zgodnie z wymaganiami basha. Ten środek ostrożności wygodnie jest to upewnić nasze skrypty działają na każdej instalacji. Inny możliwy szulernia on śmiał się:

#!/bin/bash

Różnica między nimi może być bardzo dziwna i wyjaśnię to. W tym ostatnim Zakładam, że w naszym systemie powłoka bash znajduje się pod adresem / bin / bash. Jednak tam, gdzie proponuję w scenariuszu Chyba nie wiem, gdzie to jest interpreter basha. Proszę system o podanie tego adresu.

Trzecia linia: Jak widać, druga linia to if. Aby uderzyć w znaki «$#« zawierają liczbę parametrów, które przekazujemy z wiersza poleceń. Dlatego »if [$ # -lt 1];» dosłownie oznacza „jeśli liczba parametrów jest mniejsza niż 1”.

Czwarta linia: Następnie (dosłownie w tłumaczeniu z angielskiego: wtedy), tutaj zaznaczono, że to, co będzie dalej zostanie wykonana, gdy ocena stanu if Mów prawdę: innymi słowy, liczba parametrów jest mniejsza niż 1, czyli zero.

Piąta linia: Jeśli wykonamy nasz skrypt bez żadnych parametrów, w terminalu pojawi się „Musisz podać parametr”.

Szósta linia: Wskazuje, że zostanie wykonane to, co następuje gdy zadeklarowany przez nas warunek nie jest prawdziwy.

Siódma linia: Se uruchom polecenie «gdzie jest« wraz z treścią, którą przekazaliśmy jako pierwszy parametr.

Ósmy wiersz: z «fi»Wskazuje, że blokada się kończy if.

Testowanie naszego skryptu

Jest to ważne dodaj uprawnienia do zapisu do scenariusza:

$ chmod -x ~/.bin/donde

Bez tego pojawiłby się błąd „Odmowa uprawnień”.. Następnie możemy uruchomić nasz skrypt.

$ donde php

Powinien pokazać nam lokalizację plików binarnych php, ich pliki źródłowe i strony podręcznika. Coś w tym stylu:

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

Podsumowanie

  • Umożliwiamy katalog „.bin” do przechowywania naszych skryptów.
  • Zapewniamy informacje do systemu Linux, aby uwzględnić ten katalog podczas wyszukiwania poleceń.
  • Tworzymy nasz skrypt.
  • Różnica pomiędzy różne szulernia.
  • Zastosowanie liczba parametrów przekazanych za pomocą $ #.
  • Zastosowanie pierwszy parametr z $1.

Mam nadzieję i życzę, aby ten skrypt był dla Ciebie przydatny.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   miguel powiedział

    Bardzo dobrze i dobrze wyjaśnione, ale do czego odnosi się parametr?

    1.    Symbol zastępczy dla Pedro Ruiz Hidalgo powiedział

      Dzięki Miguel!

      Rozumiem przez parametr wszystkie informacje uzupełniające, które są dostarczane do programu, funkcji lub systemu. Ponieważ może to być kłopotliwe, odpowiem na kilka przykładów.

      W poleceniu linux, aby skopiować plik a.txt do pliku b.txt, napisalibyśmy:

      $cp a.txt b.txt

      Program cp otrzymuje tutaj dwa parametry, które są nazwami dwóch plików, pierwszego (musi istnieć) a.txt i drugiego b.txt.

      Inny przykład: Jeśli wysyłasz do drukowania z konsoli za pomocą polecenia

      $ lp plik.pdf

      W tym przypadku "plik.pdf" jest parametrem programu lp.

      Mam nadzieję, że spełniłem Twoje wątpliwości.

      pozdrowienia

  2.   miguel powiedział

    Moje komentarze nie wychodzą, to brak szacunku, nie wracam na to forum.

    1.    Symbol zastępczy dla Pedro Ruiz Hidalgo powiedział

      Nie wiem, co się stało, w każdym razie zostało opublikowane.

      Pozdrowienia.