Latest web development tutorials

função Shell

linux shell pode ser funções definidas pelo usuário, então você pode facilmente chamar scripts shell.

Definition Format a função shell da seguinte forma:

[ function ] funname [()]

{

    action;

    [return int;]

}

explicação:

  • 1, pode levar diversão function () é definida para ser um divertimento direta () é definida, sem qualquer parâmetro.
  • 2, parâmetros de retorno pode ser exibida plus: o retorno de retorno, se não, o resultado será a última execução de comando, como o valor de retorno. seguido pelo valor de retorno de n (0-255

O exemplo a seguir define uma função e chamada:

#!/bin/bash
# author:本教程
# url:www.w3big.com

demoFun(){
    echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"

saída:

-----函数开始执行-----
这是我的第一个 shell 函数!
-----函数执行完毕-----

A seguinte definição de uma função com uma instrução de retorno:

#!/bin/bash
# author:本教程
# url:www.w3big.com

funWithReturn(){
    echo "这个函数会对输入的两个数字进行相加运算..."
    echo "输入第一个数字: "
    read aNum
    echo "输入第二个数字: "
    read anotherNum
    echo "两个数字分别为 $aNum 和 $anotherNum !"
    return $(($aNum+$anotherNum))
}
funWithReturn
echo "输入的两个数字之和为 $? !"

Saída semelhante ao seguinte:

这个函数会对输入的两个数字进行相加运算...
输入第一个数字: 
1
输入第二个数字: 
2
两个数字分别为 1 和 2 !
输入的两个数字之和为 3 !

Função valor de retorno depois de chamar essa função através $? É obtido.

Nota: Todas as funções devem ser definidas antes de usar. Isto significa que a função deve ser colocado no início da escrita até que o intérprete concha quando foi descoberto pela primeira vez, ele pode ser usado. Chamar a função usando apenas o seu nome da função.


Argumentos da função

No Shell, você pode passar parâmetros para que a função é chamada. Em função do corpo interior, para obter o valor de um parâmetro sob a forma de $ N, por exemplo, 1 $ para o primeiro argumento, $ 2, para o segundo parâmetro ...

Exemplo de função com parâmetros:

#!/bin/bash
# author:本教程
# url:www.w3big.com

funWithParam(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !"
    echo "第十个参数为 ${10} !"
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73

saída:

第一个参数为 1 !
第二个参数为 2 !
第十个参数为 10 !
第十个参数为 34 !
第十一个参数为 73 !
参数总数有 11 个!
作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 !

Note que $ 10 não pode obter um décimo parâmetros, obter os parâmetros décimo precisa de US $ {10}. Quando n> = 10, você precisa usar $ {n} para obter os parâmetros.

Além disso, existem vários parâmetros para lidar com caracteres especiais:

a manipulação dos parâmetros explicação
$ # O número de parâmetros passados ​​para o script
$ * Em uma corda única exibe todos os parâmetros passados ​​para o script
$$ O actual número de ID do processo do script é executado
$! Finalmente, um processo a correr no fundo número ID
$ @ * $ Com o mesmo, mas quando você usar aspas, e retorna cada parâmetro entre aspas.
$ - Shell exibe a opção atual para usar o mesmo comando conjunto de funções.
$? Exibe status de saída do último comando. 0 indica que não há erros, e qualquer outro valor indica um erro.