bash shell函数的定义及变量的简单说明
From: http://blog.sina.com.cn/s/blog_4ce3a68a0100i77a.html
函数:
“函数是一种脚本内脚本”,程序员很难想像没有函数的日子,至少我会比较痛恨。
所以了解函数的定义也就是学习bash的一大要点了。
函数大大增强了shell的编程能力,主要原因有如下两点:
- 当你调用一个函数时,它已经在shell的内存中;因此函数运行的很快。
- 将较长的shell脚本组织成各种容易开发和维护的模块是理想的。
呃,针对第一点,现在计算机的内存那是相当的便宜,大家不用再担心钱了吧?
来个4G的条子,当然用XP你就用3.5G吧,除非你扩展一下。。
定义一个函数,就是令shell在内存中保存其名字和定义(也就是其包含的shell命令)。如果你要在以后运行函数,只须鍵入其名字,后跟任意参数即可,就好像它是一个shell脚本
要定义一个函数有两种格式
{
shellcommands
}
和
{
shellcommands
}
这俩方法,其实是一样的,没啥本质及功能上的区别。
使用unset -f functname删除一个函数定义。
可以使用如下命令来查找到登录会话里定义的函数
嘿嘿,咋样?是不是显示的内容太长?嗯。用管道命令more来输出吧
如果只想看函数名的话就用
除了优势,函数和脚本有两个重要差别
- 当通过名字调用时,函数不在单独进程里运行,而脚本却可以。运行一个函数的语义更类似于登录时.bash_profile中的命令或用source命令调用脚本时的情况。
- 如果一个函数与一个脚本或可执行程序(也有可能是脚本啊)有相同的名字,则函数优先。
看出来了吧?“函数优先”,为啥呢?这里说一下在shell中鍵入一个命令时,各种资源的优先级次序:
- 别名
- 关鍵字,例如function,以及if和for等
- 函数
- 内置命令,如cd和type等
- 脚本和可执行程序(在最后哦),shell按在PATH环境变量中列出的目录中对其进行搜索
不过,呃,这个顺序是可以改变的哈。可以使用内置的command builtin和enable改变优先级次序。
它允许你将函数、别名和脚本文件定义为同样的名字,并选择要执行的一个。
变量:
呼,终于说到变量了。。嗯。没事这个短。。
简单地说:变量被命名用以存储数据,通常格式为字符串,其值可使用$符号加名字获得。某些变量称为环境变量,按惯例以大写字母命名,其取值对子进行已知(使用export语句)
呵,就这些。嘿嘿。。因为后面的内容不能放在这一节里了。太长了,呼呼。。
- shell vsunix( 9)之前已经写过几节关于shell的笔记了,可是却一直没有介绍一下,到底什么是shell。呃,经过b...
- bashshell脚本的运行方式( 9 )以下内容部分直接摘录自《学习bash》,这又是我一个新的读书笔记。希望能给大家带来帮助。...
- shell变量语法详解--两种声明变量方式,及大括号的作用( 4)貌似之前写技术类博客的做法不是很正确,嗯,一写就一大长篇,就算真正有需要的人看也会烦...
- shell对$@和$*进行引用( 2 )嘿,每次看到“$”符号我都会两眼冒光,呵,没办法,在这鄙视“资本主义”社会呢。嗯。哈...
- shell命令替换之前介绍过shell有两种方式可以取得变量的值:通过赋值语句,或者是以命令参数传递给脚本。...
bash shell函数的定义及变量的简单说明相关推荐
- Shell函数的定义及用法
1.Shell函数 利用Shell函数为报告生成程序添加下内容 输出系统正常运行时间和负载,这是自上次关机或重启之后系统的运行时长,以及在若干时间间隔内,当前运行在处理器上的平均任务量 输出磁盘空间, ...
- linux shell 函数库,bash shell 函数库
bash shell 函数库ash由自由软件基金会,Inc.版权所有(C) 1989-2011. 语法 bash [options] [file] 描述 Bash是一种与sh兼容的命令语言解释器,它执 ...
- 函数不可以直接调用其他函数内部定义的变量_python的函数
上节课的补充 字典的键(key) 和集合的值都是唯一的,如果插入相同的会进行替换 函数 它可以解决两个问题 1.重复性 2.封装 定义函数语法格式 def + 函数名 + () +: 封装的代码(调用 ...
- main c语言中变量的定义,C语言中在main函数中定义的变量是全局变量么_后端开发...
PHP 和 JavaSript 区别_后端开发 PHP是一种创建动态交互性站点的强有力的服务器端脚本语言,主要用于Web开发领域,而JavaSript是一种具有函数优先的轻量级,解释型或即时编译型的高 ...
- linux shell declare -a,Bash Shell之declare定义变量
实验环境 ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 命令说明 declare 与 typeset 命令都是bas ...
- Shell 函数的定义和使用
目录 一.Shell的函数的定义 1.1定义 1.2 函数返回值 1.3 函数传参 1.4 函数变量的作用范围 1.5 函数递归 1.5.1 阶乘 1.5.2 递归目录 1.6 创建库 一.Shell ...
- linux shell 字符串 数组,bash shell函数返回数组字符串
#!/bin/bash # script:getselfvar.sh # 每个脚本中都在末尾追加了一段特殊的域名ip序列,需要将这段序列存放到数组变量中,供 # 脚本使用,例子中的ip和域名是处理过的 ...
- node.js 函数外定义的变量 函数内赋值后为什么不能带出_(44)python少儿编程之函数(五)--- 作用域...
函数嵌套 在一个函数内定义了另一个函数 如图,定义了一个outer函数,然后在outer函数里面又定义了一个inner()函数,此时我们只能在outer函数调用inner()函数,如果在outer函数 ...
- bash shell函数中返回任意值的四种方法
From: http://www.jbxue.com/article/11322.html 本文介绍下,在bash shell编程中,从函数中返回任意值的几种方法,有需要的朋友参考下. 在bash中, ...
最新文章
- Fertility of Soils:根系C/P计量比影响水稻残根周际酶活的时空动态分布特征
- CICS FILE OPEN
- 判断一个链表是否为循环单链表
- 线上发布?华为P50将于今日开启预热:可能没有超大杯版
- 奔跑中的2015--成长之路
- Git(5):其他用法
- linux mysql恢复数据_Mysql数据恢复和备份
- 关闭layui的弹出层,还会遮罩后面的界面
- PyCharm中脚本文件无法识别相对路径
- 【react】 使用react 脚手架 创建项目
- oracle指数函数,2.1 标准 Fortran 95 的通用内函数
- linux phpstudy卸载,linux 安装phpstudy
- 根据四个特征点求解相机位姿
- List of regional organizations by population
- 梦想起航商务工作PPT模板
- 蓝屏代码: DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS bootsafe64.sys
- 训练时评估指标无变化,且预测值都一样
- mysql报08s01的错误_MYSQL报08S01的异常
- 学计算机和英语哪个好考,英语不好,学计算机哪方面比较好?
- 十大网址导航站排行榜
热门文章
- linux包之iproute之ip命令
- linux下mono的安装与卸载
- 自我接纳_接纳预测因子
- leetcode 5756. 两个数组最小的异或值之和(状态压缩dp)
- 初探Golang(3)-数据类型
- leetcode 面试题 17.21. 直方图的水量(单调栈)
- azure多功能成像好用吗_Azure持久功能简介:模式和最佳实践
- xml文档包含html代码_为什么文档很重要,以及为什么应将其包含在代码中
- javascript关键字_让我们揭开JavaScript的“ new”关键字的神秘面纱
- 怎么评价两组数据是否接近_接近组数据(组间)