zoukankan      html  css  js  c++  java
  • shell函数

    参考:http://www.cnblogs.com/jiqing9006/p/3253232.html

    参考:《shell脚本学习指南》 O'Reilly

    shell中函数使用

    像其他程序语言一样,函数是指一段单独额程序代码,用以执行一些定义完整的单项工作。在大型程序里,函数可以在程序的多个地方使用。

    function func() {...}

    func(){...}

    函数在使用之前必须先定义。

    在函数中,位置参数($1、$2、……,$#,$*, $@)都是函数的参数。父脚本的参数临时地被函数参数所掩盖(shadowed)或隐藏。$0依旧是父脚本的名称。当函数完成时,原来的命令行参数会恢复。

    在shell函数中,return命令的功能与工作方式都与exit相同,但需要注意的是:在shell函数体里使用exit,会终止整个shell脚本。

    因为return会返回一个退出值给调用者,所以可以在if与while里使用函数。举例来说,可使用shell的函数架构取代test所执行的两个字符串的比较:

    #equal --- 比较两个字符串

    equal() {

      case "$1" in

      "$2")  return 0 ;;

      esac

      return 1

    }

    if equal "$a" "$b" ...

    if ! equal "$a" "$b" ...

    return未提供参数,则使用默认退出状态,也就是最后一个执行的命令的退出状态。如果这就是你要的,那么严谨的shell函数写法:

      return $?

    警告:有些shell允许在脚本里使用return,但如果用于函数体之外,则视为等同exit。这种用法并不建议,因为会出现可移植性的困扰。

    函数(至少在posix shell里)没有提供局部变量(bash、ksh88以及zsh都提供局部变量功能,但语法不尽相同),因此所有的函数都与父脚本共享变量。即,你必须小心留意不要修改父脚本里不期望被修改的东西,如PATH。不过这也表示其他状态是共享的,例如当前目录与捕捉信号。

    函数调用方法之一

    #!/bin/bash
    # testing the script
    function myfun {
      read -p "Enter a value:" value
      echo $[ $value * 2 ]
    }
    
    result=`myfun`
    
    echo "The new vlue is $result"
    

    函数调用有两种方式(即命令代换方法):`fun`(反引号) 或 $(fun),推荐$(fun)。

    若有参数可直接放在函数名后,`fun param1 param2`或$(fun param1 param2)

    一般直接调用函数即可:函数名 参数1 参数2  

    需要函数返回值时才需要命令代换。

    参考:

    http://www.cnblogs.com/jiqing9006/p/3253232.html

  • 相关阅读:
    vue 组件创建与销毁
    防止vue组件渲染不更新
    es6 includes(), startsWith(), endsWith()
    相对路径 绝对路径
    控制台打印输出
    vue2.0 $router和$route的区别
    Vue 响应式数据说明
    Linux下多线程下载工具myget
    LNMP环境简单教程
    linux下不同服务器间数据传输(wget,scp)
  • 原文地址:https://www.cnblogs.com/embedded-linux/p/6209465.html
Copyright © 2011-2022 走看看