GNU/Linux >> Linux Esercitazione >  >> Linux

Come creare e chiamare funzioni in Bash

Una guida rapida su come creare e chiamare funzioni in Bash.

Una funzione è un blocco di codice riutilizzabile che viene utilizzato per eseguire alcune azioni. Con le funzioni, otteniamo una migliore modularità e un alto grado di riutilizzo del codice.

Bash fornisce alcune funzioni integrate come echo e read , ma possiamo anche creare le nostre funzioni.

Creazione di una funzione in Bash

Esistono due modi per creare funzioni in Bash:

Un modo è usare semplicemente il nome della funzione, ad esempio:

functionName(){
  // scope of function
}

Versione compatta:

functionName(){ echo "hello"; }

Un altro modo è dichiarare una funzione usando il function parola chiave:

function functionName {
  // scope of function
}

Versione compatta:

function functionName { echo "hello"; }

Nota come non abbiamo bisogno del () quando si utilizza il function parola chiave per creare una funzione.

Punti importanti da notare sulle funzioni Bash:

  • Il codice tra parentesi graffe {} è il corpo e l'ambito della funzione
  • Quando chiamiamo una funzione, utilizziamo semplicemente il nome della funzione da qualsiasi punto dello script bash
  • La funzione deve essere definita prima di poter essere utilizzata
  • Quando si utilizza la versione compatta, l'ultimo comando deve avere un punto e virgola ;

Esempio:

Il codice seguente crea una funzione che stampa "Hello World" sulla console. Il nome della funzione si chiama printHello :

#!/bin/bash

printHello(){
    echo "Hello World!"
}

Chiamare una funzione in Bash

Come chiamiamo la funzione sopra? Tutto quello che devi fare nel tuo script bash è scrivere il nome della funzione e verrà chiamata.

Ad esempio:

#!/bin/bash

printHello(){
    echo "Hello World!"
}

# Call printHello function from anywhere in the script by writing the name

printHello

Uscita:

"Hello World"

Passaggio di argomenti

La funzione sopra printHello() non ha parametri. Ogni volta che lo chiamiamo, otteniamo l'output "Hello World". Ma cosa accadrebbe se volessimo creare una funzione più generica? Ad esempio possiamo chiamare la funzione con qualche argomento e stamperà ciò che le inviamo.

Ci sono due modi per farlo.

Per prima cosa possiamo modificare printHello() funzione per stampare gli argomenti che gli vengono passati:

Ad esempio:

#!/bin/bash

printAny(){
    echo "Hello " $1
}

printAny World
printAny DevQa
printAny I love coding!

Uscita:

Hello World
Hello DevQA
Hello I

Nota come la terza istruzione print printAny I love coding! emesso solo "Ciao, io".

Questo perché la nostra funzione è progettata per accettare solo 1 parametro $1 . La parola "Amo programmare!" è in realtà 3 parametri.

Se volessimo stamparlo tutto dovremmo mettere le virgolette intorno al testo

Ad esempio:

#!/bin/bash

printAny(){
    echo "Hello " $1
}

printAny "I love coding!"

Uscita:

Hello I love coding

Un altro esempio, possiamo passare anche in cifre:

#!/bin/bash

add() {
    result=$(($1 + $2))
    echo "Result is: $result"
}

add 1 2

Uscita:

Result is: 3

Valori di ritorno

Anche le funzioni Bash possono restituire valori.

Ad esempio:

#!/bin/bash

add() {
    result=$(($1 + $2))
}

add 1 2
echo "The sum is: "$result

Uscita:

The sum is: 3

Un altro modo per restituire valori da una funzione consiste nell'assegnare il risultato a una variabile che può essere utilizzata come e quando necessario.

Ad esempio:

#!/bin/bash

add () {
  local result=$(($1 + $2))
  echo "$result"
}

result="$(add 1 2)"
echo "The sum is: "$result

Uscita:

The sum is: 3

Linux
  1. Come definire e utilizzare le funzioni in Linux Shell Script

  2. Come creare script Bash utilizzando variabili esterne e script incorporati

  3. Come creare ed eliminare un gruppo di utenti in Linux

  4. Come chiamare una funzione Bash nello script Bash all'interno di Awk?

  5. Bash Beginner Series #9:Utilizzo delle funzioni in Bash

Come creare un argomento SNS e un abbonato su AWS

Bash Scripting:funzioni spiegate con esempi

Come creare documenti con gli script Bash

Come creare e ripristinare snapshot VM in VirtualBox

Come creare e utilizzare file di scambio su Linux

Bash Scripting Part6 – Crea e usa le funzioni Bash