Crea i tuoi script usando bash

Imparare Linux

Indipendentemente dalla distribuzione Linux che stiamo utilizzando, "senza dubbio il mio preferito è Ubuntu" non appena entriamo nell'uso di questo sistema, alcuni esigenze di automazione. Cioè: crea il nostro propri comandi che eseguono determinati comandi in modo personalizzato. Questa esigenza può essere dovuta a determinate cause:

  • Semplifica la sintassi dei comandi che di solito eseguiamo.
  • Intraprendi azioni che coprono qualsiasi bisogno che non è previsto nel sistema operativa.
  • Ordini di sequenza che ripetiamo assiduamente.

Sebbene uno script bash possa essere eseguito in / da qualsiasi directory, di solito lo è creare una directory per ospitare questi script. Nel mio caso:

$ mkdir /home/pedro/.bin

Lo credo directory (nascosta inserendo il punto davanti al nome) per contenere tutti gli script che uso lì. Il fatto che il nome della directory sia nascosto non ha altro significato che - se non diversamente specificato esplicitamente - non apparirà durante la visualizzazione di / home / pedro dal visualizzatore di file in modalità grafica.

Adesso devi informa Linux che dovrebbe guardare anche lì (/home/pedro/.bin) gli ordini che vengono eseguiti dal terminale.

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

In questo modo il sistema cercherà lì i nostri ordini fino a quando non chiudiamo la sessione. Per rendere permanente questa associazione:

$ sudo nano /etc/environment

e aggiungiamo

:/home/pedro/.bin

alla fine della riga PATH, è molto importante non dimenticare i due punti prima dell'indirizzo della directory che stiamo includendo, poiché questo è il meccanismo di addizione.

Il nostro primo script passo passo

Creiamo il nostro file, come questo nel mio caso:

$ touch ~/.bin/donde

E per modificarlo, puoi utilizzare il tuo editor preferito o seguire questa indicazione:

$ gedit ~/.bin/donde &

E aggiungiamo il seguente contenuto:

#!/usr/bin/env bash

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

Analisi del copione

La nostra prima linea di chiamata «faccenda»(#! / Usr / bin / env bash) chiedi a Linux di segnalare dove si trova la shell bash e che ciò che segue viene eseguito secondo i requisiti di bash. Questa precauzione è conveniente assicurarsi che i nostri script funzionano su qualsiasi installazione. Un altro possibile faccenda ha riso:

#!/bin/bash

La differenza tra loro può essere molto strana e la spiegherò. In quest'ultimo Lo presumo nel nostro sistema la shell bash è all'indirizzo / bin / bash. Tuttavia, dove propongo nella sceneggiatura Immagino di non sapere dove sia l'interprete bash. Chiedo al sistema di fornire quell'indirizzo.

Terza riga: come puoi vedere, la seconda riga è un if. Per colpire i personaggi «$#« contenere il numero di parametri che stiamo passando dalla riga di comando. Pertanto, »if [$ # -lt 1];» letteralmente significa "se il numero di parametri è inferiore a 1".

Quarta riga: Poi (letteralmente traducendo dall'inglese: quindi), qui è indicato che cosa viene dopo verrà eseguito quando la valutazione della condizione if essere vero: in altre parole, il numero di parametri è inferiore a 1, ovvero zero.

Quinta riga: se eseguiamo il nostro script senza alcun parametro, mostreremo nel terminale «Devi passare un parametro».

Sesta riga: Indica che verrà eseguito quanto segue quando la condizione che abbiamo dichiarato non è vera.

Settima riga: Se esegui il comando «dove si trova« accompagnato dal contenuto che abbiamo passato come primo parametro.

Ottava riga: con «fi»Indica che il blocco termina if.

Testare il nostro script

È importante aggiungere i permessi di scrittura allo script:

$ chmod -x ~/.bin/donde

Senza questo, verrebbe visualizzato un errore di "autorizzazione negata".. Dopodiché, possiamo eseguire il nostro script.

$ donde php

Dovrebbe mostrarci la posizione dei binari php, i loro file sorgente e le pagine man. Qualcosa del genere:

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

Ricapitolando

  • Abilitiamo un file directory ".bin" per ospitare i nostri script.
  • Noi forniamo informazioni a Linux per includere questa directory nelle sue ricerche di comandi.
  • Creiamo il nostro script.
  • Differenza tra distintos faccenda.
  • Uso di numero di parametri passati con $ #.
  • Uso di primo parametro con $1.

Spero e spero che questo script ti sia utile.


4 commenti, lascia il tuo

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Miguel suddetto

    Molto buono e ben spiegato, ma a cosa si riferisce un parametro?

    1.    Immagine segnaposto Pedro Ruiz Hidalgo suddetto

      Grazie Miguel!

      Comprendo per parametro tutte le informazioni complementari fornite a un programma, una funzione o un sistema. Poiché questo può essere complicato, lascia che ti risponda con alcuni esempi.

      Nel comando linux per copiare il file a.txt nel file b.txt, scriveremmo quanto segue:

      $cp a.txt b.txt

      Il programma cp qui riceve due parametri che sono i nomi di due file, il primo (deve esistere) a.txt e il secondo b.txt.

      Un altro esempio: se invii in stampa dalla console con il comando

      $ lp file.pdf

      In questo caso "file.pdf" è un parametro per il programma lp.

      Spero di aver soddisfatto i tuoi dubbi.

      saluti

  2.   Miguel suddetto

    I miei commenti non vengono fuori, è una mancanza di rispetto, non torno più su questo forum.

    1.    Immagine segnaposto Pedro Ruiz Hidalgo suddetto

      Non so cosa sia successo, in ogni caso è stato pubblicato.

      Saluti.