From: http://blog.sina.com.cn/s/blog_4ce3a68a0100i77a.html

函数:

“函数是一种脚本内脚本”,程序员很难想像没有函数的日子,至少我会比较痛恨。

所以了解函数的定义也就是学习bash的一大要点了。

函数大大增强了shell的编程能力,主要原因有如下两点:

  1. 当你调用一个函数时,它已经在shell的内存中;因此函数运行的很快。
  2. 将较长的shell脚本组织成各种容易开发和维护的模块是理想的。

呃,针对第一点,现在计算机的内存那是相当的便宜,大家不用再担心钱了吧?

来个4G的条子,当然用XP你就用3.5G吧,除非你扩展一下。。

定义一个函数,就是令shell在内存中保存其名字和定义(也就是其包含的shell命令)。如果你要在以后运行函数,只须鍵入其名字,后跟任意参数即可,就好像它是一个shell脚本

要定义一个函数有两种格式

function functname
{
      shellcommands
}

functname()
{
     shellcommands
}

这俩方法,其实是一样的,没啥本质及功能上的区别。

使用unset -f functname删除一个函数定义。

unset -ffunctname

可以使用如下命令来查找到登录会话里定义的函数

declare -f

嘿嘿,咋样?是不是显示的内容太长?嗯。用管道命令more来输出吧

declare -f|more

如果只想看函数名的话就用

declare -F

除了优势,函数和脚本有两个重要差别

  1. 当通过名字调用时,函数不在单独进程里运行,而脚本却可以。运行一个函数的语义更类似于登录时.bash_profile中的命令或用source命令调用脚本时的情况。
  2. 如果一个函数与一个脚本或可执行程序(也有可能是脚本啊)有相同的名字,则函数优先。

看出来了吧?“函数优先”,为啥呢?这里说一下在shell中鍵入一个命令时,各种资源的优先级次序:

  1. 别名
  2. 关鍵字,例如function,以及if和for等
  3. 函数
  4. 内置命令,如cd和type等
  5. 脚本和可执行程序(在最后哦),shell按在PATH环境变量中列出的目录中对其进行搜索

不过,呃,这个顺序是可以改变的哈。可以使用内置的command builtin和enable改变优先级次序。

它允许你将函数、别名和脚本文件定义为同样的名字,并选择要执行的一个。

变量:
呼,终于说到变量了。。嗯。没事这个短。。

简单地说:变量被命名用以存储数据,通常格式为字符串,其值可使用$符号加名字获得。某些变量称为环境变量,按惯例以大写字母命名,其取值对子进行已知(使用export语句)

呵,就这些。嘿嘿。。因为后面的内容不能放在这一节里了。太长了,呼呼。。

相关文章
  • shell vsunix( 9)之前已经写过几节关于shell的笔记了,可是却一直没有介绍一下,到底什么是shell。呃,经过b...
  • bashshell脚本的运行方式( 9 )以下内容部分直接摘录自《学习bash》,这又是我一个新的读书笔记。希望能给大家带来帮助。...
  • shell变量语法详解--两种声明变量方式,及大括号的作用( 4)貌似之前写技术类博客的做法不是很正确,嗯,一写就一大长篇,就算真正有需要的人看也会烦...
  • shell对$@和$*进行引用( 2 )嘿,每次看到“$”符号我都会两眼冒光,呵,没办法,在这鄙视“资本主义”社会呢。嗯。哈...
  • shell命令替换之前介绍过shell有两种方式可以取得变量的值:通过赋值语句,或者是以命令参数传递给脚本。...

bash shell函数的定义及变量的简单说明相关推荐

  1. Shell函数的定义及用法

    1.Shell函数 利用Shell函数为报告生成程序添加下内容 输出系统正常运行时间和负载,这是自上次关机或重启之后系统的运行时长,以及在若干时间间隔内,当前运行在处理器上的平均任务量 输出磁盘空间, ...

  2. linux shell 函数库,bash shell 函数库

    bash shell 函数库ash由自由软件基金会,Inc.版权所有(C) 1989-2011. 语法 bash [options] [file] 描述 Bash是一种与sh兼容的命令语言解释器,它执 ...

  3. 函数不可以直接调用其他函数内部定义的变量_python的函数

    上节课的补充 字典的键(key) 和集合的值都是唯一的,如果插入相同的会进行替换 函数 它可以解决两个问题 1.重复性 2.封装 定义函数语法格式 def + 函数名 + () +: 封装的代码(调用 ...

  4. main c语言中变量的定义,C语言中在main函数中定义的变量是全局变量么_后端开发...

    PHP 和 JavaSript 区别_后端开发 PHP是一种创建动态交互性站点的强有力的服务器端脚本语言,主要用于Web开发领域,而JavaSript是一种具有函数优先的轻量级,解释型或即时编译型的高 ...

  5. linux shell declare -a,Bash Shell之declare定义变量

    实验环境 ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 命令说明 declare 与 typeset 命令都是bas ...

  6. Shell 函数的定义和使用

    目录 一.Shell的函数的定义 1.1定义 1.2 函数返回值 1.3 函数传参 1.4 函数变量的作用范围 1.5 函数递归 1.5.1 阶乘 1.5.2 递归目录 1.6 创建库 一.Shell ...

  7. linux shell 字符串 数组,bash shell函数返回数组字符串

    #!/bin/bash # script:getselfvar.sh # 每个脚本中都在末尾追加了一段特殊的域名ip序列,需要将这段序列存放到数组变量中,供 # 脚本使用,例子中的ip和域名是处理过的 ...

  8. node.js 函数外定义的变量 函数内赋值后为什么不能带出_(44)python少儿编程之函数(五)--- 作用域...

    函数嵌套 在一个函数内定义了另一个函数 如图,定义了一个outer函数,然后在outer函数里面又定义了一个inner()函数,此时我们只能在outer函数调用inner()函数,如果在outer函数 ...

  9. bash shell函数中返回任意值的四种方法

    From: http://www.jbxue.com/article/11322.html 本文介绍下,在bash shell编程中,从函数中返回任意值的几种方法,有需要的朋友参考下. 在bash中, ...

最新文章

  1. Fertility of Soils:根系C/P计量比影响水稻残根周际酶活的时空动态分布特征
  2. CICS FILE OPEN
  3. 判断一个链表是否为循环单链表
  4. 线上发布?华为P50将于今日开启预热:可能没有超大杯版
  5. 奔跑中的2015--成长之路
  6. Git(5):其他用法
  7. linux mysql恢复数据_Mysql数据恢复和备份
  8. 关闭layui的弹出层,还会遮罩后面的界面
  9. PyCharm中脚本文件无法识别相对路径
  10. 【react】 使用react 脚手架 创建项目
  11. oracle指数函数,2.1 标准 Fortran 95 的通用内函数
  12. linux phpstudy卸载,linux 安装phpstudy
  13. 根据四个特征点求解相机位姿
  14. List of regional organizations by population
  15. 梦想起航商务工作PPT模板
  16. 蓝屏代码: DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS bootsafe64.sys
  17. 训练时评估指标无变化,且预测值都一样
  18. mysql报08s01的错误_MYSQL报08S01的异常
  19. 学计算机和英语哪个好考,英语不好,学计算机哪方面比较好?
  20. 十大网址导航站排行榜

热门文章

  1. linux包之iproute之ip命令
  2. linux下mono的安装与卸载
  3. 自我接纳_接纳预测因子
  4. leetcode 5756. 两个数组最小的异或值之和(状态压缩dp)
  5. 初探Golang(3)-数据类型
  6. leetcode 面试题 17.21. 直方图的水量(单调栈)
  7. azure多功能成像好用吗_Azure持久功能简介:模式和最佳实践
  8. xml文档包含html代码_为什么文档很重要,以及为什么应将其包含在代码中
  9. javascript关键字_让我们揭开JavaScript的“ new”关键字的神秘面纱
  10. 怎么评价两组数据是否接近_接近组数据(组间)