shell中的函数及函数传参, 函数中的变量是全局的

0. shell的文件级和函数中定义的变量默认都是全局变量, 这点和python不同, 如需在函数中定义

 局部变量, 需在定义时使用local才可.

1. 函数基本结构:

 方法一: function_name () { shell 语法实现的功能 }

 方法二: function  name { shell 语法实现的功能 }

2. shell中的函数没有形参的概念, shell中也没有行分隔符;

3. 函数的调用直接使用函数名, 不加括号; 

4. 函数虽没有参数, 但函数体中可以使用$number的形式从函数调用处按照位置接受传入的数据,如下

     function_name () { shell 引用$!和$2的场景 }        # 调用   function_name  10  20

     function_name () { shell 引用$num的场景 }          # 调用前定义num变量, 再调用函数function_name 

     function_name () { shell 引用$!和$2的场景 }         # 调用   function_name  $1  $2, 此时可接受shell窗口中执行该函数文件时后面加的参数

     

      循环赋值补充: num=$(($num * $i))     

5. 函数的返回值: (shell中return默认是数字, 且不能超过255, 超过会报错)

      函数的返回值可使用$?来接受

      

6. 函数返回任意想返回的内容

     

7. 函数传递数组参数示例:

 

 shell的函数中如何返回数组呢?

 在函数中先组建好要返回的数组, 使用echo "${array[*]}"   在调用函数处使用个变量接受即可.  return_array=~function patameter~

原文地址:https://www.cnblogs.com/quzq/p/12093220.html