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