文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>关于函数

关于函数

时间:2006-01-07  来源:yszll

在Shell里允许定义函数,你当然也可以把一个大的任务做成许多小脚本,然后在一个脚本里执行另一个脚本程序,但那样效率低,并且执行结果的回传也成问题,如果任务很分散,小脚本也会因过多而难于管理。 在Shell定义个函数很简单,写出他的名字,然后是一对空括号"()",再把有关的语句放在一对花括号"{}"里: function_name () {     statements; }   例子: #!/bin/sh foo() {     echo "Function foo is executing!" } echo "script starting" foo echo "script ended" exit 0 注意: Shell里的函数定义和Pascal的函数定义类似,必须先定义后使用. 再调用一个函数的时候,脚本程序的位置参数 "$*","$@","$#",$!","$2" 登会被替换为函数的参数. 这也是读取传递给函数的参数的办法. 函数执行完毕后,有关参数会被恢复. 但有写比较老的SHELL在函数执行后不能恢复位置参数的值,所以如果你想让自己的脚本具有可移植性,就不要依赖这个行为. 在shell里可以通过local关键字声明局部变量,局部变量将局限在函数的作用范围内.函数可以对全局作用范围中的其他shell变量进行存取. 如果某个局部变量和某个全局变量的名字相同,前者会覆盖后者,但也仅限于函数的作用范围以内. #!/bin/sh sample_txt="global varible" foo() {     local sample_txt="local varible"     echo "Function foo is executing"     echo $sample_txt } echo "script starting" echo $sample_txt exit 0 ---------- 函数输出如下: script starting
Function foo is executing
local varible
global varible
  如果在函数里没有使用return命令指定返回值,它返回的就是执行最后一条命令的退出状态码. 下面这个脚本程序,演示了函数的参数是如何被传递的一急如何让函数返回一个true或false的结果. #!/bin/sh #Define function
yes_or_no() {
  echo "Is you name $* ?"
  while true
  do
    echo "Enter yes or no:"
    read x
    case "$x" in
      y | yes ) return 0;;
      n | no ) return 1;;
      * ) echo "Answer yes or no"
    esac
  done
}
# Main program
if [ "$#" = "0" ] ; then
  echo "Usage: myname name"
else
  echo "Original parameters are $*"
  if yes_or_no "$s*"
  then echo "Hi $*,nice name"
  else
    echo "Never mind"
  fi
fi
exit 0
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载