Unha guía rápida sobre como crear e chamar funcións en Bash.
Unha función é un bloque de código reutilizable que se usa para realizar algunha acción. Coas funcións, obtemos unha mellor modularidade e un alto grao de reutilización de código.
Bash ofrece algunhas funcións integradas como echo
e read
, pero tamén podemos crear as nosas propias funcións.
Hai dúas formas de crear funcións en Bash:
Un xeito é só usar o nome da función, por exemplo:
functionName(){ // scope of function }
Versión compacta:
functionName(){ echo 'hello'; }
Outro xeito é declarar unha función usando o function
palabra clave:
function functionName { // scope of function }
Versión compacta:
function functionName { echo 'hello'; }
Fíxate como non necesitamos o ()
ao usar o function
palabra clave para crear unha función.
Puntos importantes a ter en conta sobre as funcións de Bash:
{}
é a función corpo e alcance;
Exemplo:
O seguinte código crea unha función que imprime 'Hello World' na consola. Chámase o nome da función printHola :
#!/bin/bash printHello(){
echo 'Hello World!' }
Como chamamos á función anterior? Todo o que tes que facer no teu script bash é escribir o nome da función e chamarase.
Por exemplo:
#!/bin/bash printHello(){
echo 'Hello World!' } # Call printHello function from anywhere in the script by writing the name printHello
Saída:
'Hello World'
A función anterior printHello()
non ten ningún parámetro. Cada vez que o chamamos, obtemos a saída 'Hello World'. Pero e se quixésemos crear unha función máis xenérica? Por exemplo, podemos chamar á función con algún argumento e imprimirá o que lle enviamos.
Hai dúas formas de facelo.
Primeiro podemos modificar o printHello()
función para imprimir os argumentos que se lle pasan:
Por exemplo:
#!/bin/bash printAny(){
echo 'Hello ' $1 } printAny World printAny DevQa printAny I love coding!
Saída:
Hello World Hello DevQA Hello I
Observe como a terceira declaración de impresión printAny I love coding!
só emitiu 'Ola, eu'.
Isto débese a que a nosa función está deseñada para tomar só 1 parámetro $1
. A palabra 'Encántame codificar!' é realmente 3 parámetros.
Se quixésemos imprimilo todo, teriamos que poñer comiñas ao redor do texto
Por exemplo:
#!/bin/bash printAny(){
echo 'Hello ' $1 } printAny 'I love coding!'
Saída:
Hello I love coding
Outro exemplo, tamén podemos pasar en cifras:
#!/bin/bash add() {
result=$(($1 + $2))
echo 'Result is: $result' } add 1 2
Saída:
Result is: 3
As funcións de Bash tamén poden devolver valores.
Por exemplo:
#!/bin/bash add() {
result=$(($1 + $2)) } add 1 2 echo 'The sum is: '$result
Saída:
The sum is: 3
Outra forma de devolver valores dunha función é asignar o resultado a unha variable que se pode usar cando e cando sexa necesario.
Por exemplo:
#!/bin/bash add () { local result=$(($1 + $2)) echo '$result' } result='$(add 1 2)' echo 'The sum is: '$result
Saída:
The sum is: 3