English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Funções do Shell

O shell Linux pode definir funções e chamá-las em scripts shell.

O formato de definição de função no shell é o seguinte:

[function] funname [()]
{
    ação;
    [return int;]
}

Descrição:

  • 1、pode conter a definição de function fun()  ou pode ser definida diretamente como fun() ,sem qualquer parâmetro.

  • 2、o parâmetro de retorno pode mostrar a adição: return retorna, se não adicionar, usará o resultado da última instrução executada como valor de retorno. O return deve seguir um número n(0-255

A seguir, define-se uma função e chamá-la:

#!/bin/bash
# author:基础教程网
# url:pt.oldtoolbag.com
demoFun()
    echo "Este é o meu primeiro função shell!"
}
echo ""-----A função começou a ser executada-----"
demoFun
echo ""-----A função foi executada-----"

Resultados de Saída:

-----A função começou a ser executada-----
Este é o meu primeiro função shell!
-----A função foi executada-----

A seguir, define-se uma função com uma instrução return:

#!/bin/bash
# author:基础教程网
# url:pt.oldtoolbag.com
funWithReturn()
    echo "Esta função realizará a adição dos dois números inseridos..."
    echo "Insira o primeiro número: "
    read aNum
    echo "Insira o segundo número: "
    read anotherNum
    echo "Os dois números são $aNum e $anotherNum !"
    return $(($aNum+$anotherNum))
}
funWithReturn
echo "A soma dos dois números inseridos é $? !"

A saída será semelhante à seguinte:

Esta função realizará a adição dos dois números inseridos...
Insira o primeiro número: 
1
Insira o segundo número: 
2
Os dois números são 1 e 2 !
A soma dos dois números inseridos é 3 !

O valor de retorno da função pode ser obtido após a chamada da função usando $?.

Atenção: todas as funções devem ser definidas antes de serem usadas. Isso significa que as funções devem ser colocadas na parte inicial do script, até que o interpretador do shell o encontre pela primeira vez, para que possam ser usadas. Chamar uma função requer apenas o nome da função.

Parâmetros da função

No Shell, ao chamar uma função, você pode passar parâmetros para ela. Dentro do corpo da função, você pode obter o valor do parâmetro usando a forma $n, por exemplo, $1Representa o primeiro parâmetro, $2Representa o segundo parâmetro...

Exemplo de função com parâmetros:

#!/bin/bash
# author:基础教程网
# url:pt.oldtoolbag.com
funWithParam()
    echo "O primeiro parâmetro é $1 !"
    echo "O segundo parâmetro é $2 !"
    echo "O décimo parâmetro é $10 !"
    echo "O décimo parâmetro é ${"10} !"
    echo "O décimo primeiro parâmetro é ${"11} !"
    echo "O número total de parâmetros é $# 个!"
    echo "Como uma string, exibe todos os parâmetros $"* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73

Resultados de Saída:

O primeiro parâmetro é 1 !
O segundo parâmetro é 2 !
O décimo parâmetro é 10 !
O décimo parâmetro é 34 !
O décimo primeiro parâmetro é 73 !
O número total de parâmetros é 11 !
Como uma string, exibe todos os parâmetros 1 2 3 4 5 6 7 8 9 34 73 !

Atenção, $10 Não é possível obter o décimo parâmetro, para obter o décimo parâmetro é necessário ${10}. Quando n>=10Quando, é necessário usar ${n} para obter o parâmetro.

Além disso, há alguns caracteres especiais usados para manipular parâmetros:

Manutenção de Parâmetros Descrição
$# Número de parâmetros passados ao script ou função
$* Exibe todos os parâmetros passados ao script como uma única string
$$ ID do processo atual do script em execução
$! ID do último processo em execução em segundo plano
$@ Como $*Igual, mas ao usar, adiciona aspas e retorna cada parâmetro dentro das aspas.
$- Exibe as opções atuais do Shell, similar ao comando set.
$? Exibe o estado de saída da última instrução. 0 indica que não houve erro, qualquer outro valor indica que houve erro.