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.