GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire un comando in uno script della shell?

Shell è un interprete della riga di comando che consente all'utente di interagire con il sistema. È responsabile della ricezione degli input dall'utente e della visualizzazione dell'output.

Gli script della shell sono una serie di comandi scritti in ordine di esecuzione. Questi script possono contenere funzioni, cicli, comandi, variabili. Gli script consentono agli utenti di salvare facilmente determinate sequenze di codici che potrebbero essere utilizzate più e più volte. Gli script della shell possono anche avere commenti per aumentare la leggibilità.

È necessario salvare uno script di shell con l'estensione .sh .

Per far sapere al sistema Linux che il file è uno script di shell, il file deve iniziare con shebang costruire.

#!/bin/bash 
OR
#!/bin/sh

Successivamente, lo script può contenere comandi, funzioni, loop, controlli condizionali, ecc.

Un buon script contiene sempre commenti che lo rendono leggibile.

Creazione ed esecuzione di uno script di shell di base

Uno script di shell può essere creato usando vi, il comando cat o il normale editor di testo nella GUI.

Creiamo uno script di shell di base usando vi

$ vi basic_script.sh

Questo ti porterà all'editor vi. Aggiungi le seguenti righe:

#!/bin/bash
whoami
date

Questo semplice script dovrebbe visualizzare l'utente corrente seguito dalla data.

Per salvare e uscire dall'editor vi:

  • Premi ESC
  • Digita :
  • Digita 'wq'
  • Premi Invio

Per impostazione predefinita, il creatore dello script non ottiene l'autorizzazione eseguibile per il file.

Per cambiarlo:

$ chmod +x basic_script.sh

Questo ti darà (utente corrente) il permesso di eseguire il file.

Per eseguire lo script:

$ bash basic_script.sh

La prima riga di output corrisponde al comando "whoami" e la seconda riga al comando "date".

Un altro modo per eseguire lo script è :

$ ./basic_script.sh 

L'esecuzione del file in questo modo potrebbe richiedere all'utente di concedere prima l'autorizzazione. L'esecuzione con "bash" non richiede l'autorizzazione.

Lo stesso script è in esecuzione con 'bash' prima, ma con problemi di autorizzazione quando si tenta di eseguire direttamente. Il motivo per cui ciò sta accadendo è che il comando bash [nomefile] necessita solo dell'autorizzazione di lettura dal file.

Considerando che il comando ./[filename] esegue il file come eseguibile e quindi richiede l'autorizzazione per l'esecuzione. Questa domanda ha ricevuto una risposta dettagliata su StackExchange.

In generale è meglio fornire il permesso eseguibile.

Utilizzo delle variabili negli script di shell

Gli script possono includere variabili definite dall'utente, infatti poiché gli script diventano voluminosi in termini di dimensioni è essenziale disporre di variabili chiaramente definite. Le variabili di natura autodescrittiva sono un'altra qualità di un buon copione.

Aggiungi le seguenti righe allo script:

#!/bin/bash
#This is a comment

#defining a variable
GREETINGS="Hello! How are you"
echo $GREETINGS

SALUTI è la variabile definita e successivamente accessibile utilizzando '$'.

Non dovrebbe esserci spazio nella riga in cui alle variabili viene assegnato un valore.

Eseguiamo lo script:

Lettura dell'input dalla riga di comando

Gli script della shell possono essere resi interattivi con la possibilità di accettare input dalla riga di comando. Il comando di lettura può essere utilizzato per memorizzare l'input della riga di comando in una variabile.

#!/bin/bash
#This is a comment

#defining a variable
echo "What is your name?"
#reading input 
read NAME
#defining a variable
GREETINGS="Hello! How are you"
echo $NAME $GREETINGS
                 

Una variabile NAME è stato utilizzato per accettare l'input dalla riga di comando.

Durante l'esecuzione dello script:

Definizione delle funzioni

Gli utenti possono definire le proprie funzioni in uno script. Queste funzioni possono accettare più argomenti.

Nello script aggiungi :

#!/bin/bash
#This is a comment

#defining a variable
echo "What is the name of the directory you want to create?"
#reading input 
read NAME
#defining a variable

echo "Creating $NAME ..."
mkcd ()
{
  mkdir "$NAME" 
  cd "$NAME"
}

mkcd
echo "You are now in $NAME"

Questo script chiederà all'utente un nome di directory. Creerà quindi la directory e cd in essa.

Conclusione

Abbiamo visto come gli script possono essere utilizzati per eseguire comandi in un ordine seriale. Gli script aiutano gli utenti a ridurre la ridondanza e a risparmiare tempo. Gli script possono anche essere condivisi tra utenti diversi.

Gli script che abbiamo visto in questo tutorial erano piuttosto semplici, gli script possono essere progettati anche per eseguire attività complesse. Per ulteriori informazioni sugli script, fare riferimento a questo.


Linux
  1. Come creare uno script di un comando Linux

  2. Come gestire gli interruttori in uno script di shell?

  3. Come creare un file temporaneo nello script della shell?

  4. Come eseguire i comandi in Gnuplot usando lo script della shell?

  5. Come memorizzare un comando in una variabile in uno script di shell?

Come utilizzare le variabili negli script della shell

Come eseguire un comando Shell con Python

Come creare script di shell

Come eseguire i comandi della shell tramite il server HTTP

Come scrivere uno script di shell in Ubuntu

Come memorizzare un comando Linux come variabile nello script della shell