Latest web development tutorials

función Shell

Linux cáscara puede ser funciones definidas por el usuario, entonces usted puede llamar fácilmente en los scripts.

Formato de definición de la función de la cáscara de la siguiente manera:

[ function ] funname [()]

{

    action;

    [return int;]

}

explicación:

  • 1, puede tomar la diversión de función () se define como una diversión directa () se define, sin ningún parámetro.
  • 2, los parámetros de retorno se pueden mostrar más: el retorno de retorno, si no, el resultado será la última instrucción ejecutada, ya que el valor de retorno. seguido por el valor de retorno de n (0-255

El ejemplo siguiente define una función y llamada:

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

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

salida:

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

La siguiente definición de una función con una instrucción 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 "输入的两个数字之和为 $? !"

De salida similar a la siguiente:

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

valor de retorno de la función después de llamar a esta función a través $? ¿Se obtuvo.

Nota: Todas las funciones deben definirse antes de su uso. Esto significa que la función debe ser colocado en el comienzo de la secuencia de comandos hasta que el intérprete shell cuando se descubrió primero, que puede ser utilizado. Llame a la función utilizando sólo su nombre de la función.


Argumentos de función

En el Shell, puede pasar parámetros a los que se invoca la función. En el cuerpo de la función en el interior, para obtener el valor de un parámetro en forma de $ n, por ejemplo, $ 1 para el primer argumento, $ 2 para el segundo parámetro ...

Ejemplo de la función con 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

salida:

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

Tenga en cuenta que $ 10 no puede conseguir a un décimo parámetros, obtener los parámetros décimo necesitan $ {10}. Cuando n> = 10, es necesario utilizar $ {n} para obtener los parámetros.

Además, hay varios parámetros para manejar caracteres especiales:

La administración de parámetros explicación
$ # El número de parámetros pasados ​​al script
$ * En una sola muestra de cuerda todos los parámetros pasados ​​al script
$$ El número ID del proceso actual de la secuencia de comandos se ejecuta
$! Por último, un proceso que se ejecuta en el fondo número ID
$ @ * $ Con el mismo, pero cuando se utiliza comillas, y devuelve cada parámetro entre comillas.
$ - Shell muestra la opción actual para utilizar el mismo comando conjunto de funciones.
$? Muestra el estado de salida del último comando. 0 indica que no hay errores, y cualquier otro valor indica un error.