shellscript 19 函数

函数名 ()  // 函数名前面也可以加 function

{

  命令1

  …

}

可以将函数看做是脚本中的一段代码,但是有一个主要区别:执行函数时,它保留当前 shell 和内存信息,此外如果执行或调用一个脚本文件中的另一段代码,将创建一个单独的 shell, 因而取出所有原脚本中定义的存在变量。

例如 :

hello()

{

  echo “Hello, this function is only echo hello”

}

所有函数在使用前必须定义,这意味着必须将函数放在脚本开始部分,直至 shell 解析器首次防线它时,才可以使用。

向函数传递参数

向函数传递参数就像在一般脚本中使用特殊变量 $1, $2, … $9 一样,函数取得所传参数后,将原始参数传回 shell 脚本,因此最好先在函数内重新设置变量保存所传参数,函数里调用参数( 变量 ) 的转换以 下划线开始,后加变量名,如 _FILENAME 或 _filename.

从调用函数中返回

可以将 函数文件先放到 linux 后台,然后当执行别的 shell 文件时,可以直接使用在后台 ( shell ) 中的函数,例如

pg functions.main

#! /bin/sh

findit() {

  echo “Hello,world”

}

然后运行这个 shell 脚本,那么 pg 就是将它们放到了后台。。

./ pathname/filename

使用 set 命令可以查看该函数是否载入

这时候,可以直接在 shell 中执行该函数,即直接在 shell 提示符 下输入 findit 就可以了

unset function_name 可以将该函数删除

-- 其实 shell 脚本也是每条命令依次执行,所以,当然可以在某个 shell script 脚本中调用别的 函数( 已经放在 shell中 ).

原文地址:https://www.cnblogs.com/moveofgod/p/2845649.html