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. |