shell函数

注:现在是unix编程

实例:

#!/bin/sh
demon(){
  echo "这是一个shell脚本"
}
demon

注: 调用是只写函数名没有()

函数的返回值

函数的返回值只能是数字(0-255)

#!/bin/sh
demon(){
  echo "这个函数会对输入的两个数字进行加法运算"
  echo "请输入第一个数字"
  read cat1
  echo "请输入第二个数字"
  read cat2
  echo "两个数字分别为${cat1}和${cat2}"
  return $(($cat2+$cat1))
}
demon
echo "输入的两个数字的和是:$?"

注:1)函数在调用前必须定义,也就是说函数必须写在脚本的前面;

  2)函数的返回值通过$?在调用函数后获得

  3)函数的返回值只能是(0-255),也就是前面的demon函数输入为255和1时,会返回0,切记

函数参数

#!/bin/sh
demon(){
  echo "第1个参数是:$1"
  echo "第2个参数是:$2"
  echo "第3个参数是:$3"
  echo "第4个参数是:$4"
  echo "第5个参数是:$5"
  echo "第6个参数是:$6"
  echo "第7个参数是:$7"
  echo "第8个参数是:$8"
  echo "第9个参数是:$9"
  echo "第10个参数是:${10}"
  echo "总共有参数:$#"
  echo "作为一个参数输出所有参数:$*"
}
demon 1 2 3 4 5 6 7 8 9 10 11

输出结果:

第1个参数是:1
第2个参数是:2
第3个参数是:3
第4个参数是:4
第5个参数是:5
第6个参数是:6
第7个参数是:7
第8个参数是:8
第9个参数是:9
第10个参数是:10
总共有参数:11
作为一个参数输出所有参数:1 2 3 4 5 6 7 8 9 10 11

注: 注意第十个参数的获取方法要加{}

shell输入输出重定向

输出重定向

如 ll > usrs 会将命令的结果输出到usrs文件中(如果文件不存在则创建,有的覆盖),可以使用>>来实现追加

输入重定向

如 命令行输入 wc test.sh 和wc < test.sh 第一个会显示文件名,第二个不会显示文件名,因为它仅仅知道从标准输入读取内容

/dev/null

如果执行某个命令不希望在命令行显示可以直接定向到/dev/null, /dev/null是个特殊的文件写入其中的内容都会被丢弃

shell 文件包含

shell也可以包含外部脚本

引入方式有两种

1) . filename

2) source filename

注: 第一种方式.后有个空格,不能省略

被包含的文件可以没有执行的权限

shell脚本学习(六)的更多相关文章

  1. Shell脚本学习指南笔记

    Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...

  2. 笔记——shell脚本学习指南

    <shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...

  3. Shell 脚本学习资料搜集

    Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...

  4. 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式

    正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...

  5. 转 shell脚本学习指南

    shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题 ...

  6. Shell脚本学习 - 运算符

    继续shell脚本学习.上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作. 运算符 bash不支持简单的数学计算,需要依赖其他命令实现. expr可以代为实现. # 表达式一般这么写 ` + ...

  7. shell脚本学习总结02--数组

    bash同时支持普通数组个关联数组,普通数组只能使用整数作为数组的索引,关联数组可以使用字符串作为数组的索引. 数组的定义方法: 在单行中使用一列值定义一个数组 [root@new ~]# array ...

  8. shell脚本学习之6小时搞定(1)

    shell脚本学习之6小时搞定(1) 简介 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把 ...

  9. shell脚本学习心得

    近来主要捣鼓ubuntu,大多数项目中都用到了sh脚本作为启动脚本等,以前只是大概明白如何使用,今天需要自己修改并运行脚本就碰到了很多问题,所以决定静下心来学习一下shell脚本,学习了几个小时,现将 ...

随机推荐

  1. 自定义函数,根据p个数,自适应剧中效果

    //最后投保进程line-height 自适应居中; function self_adaption(){ $('.last_place').each(function(){ var _this = $ ...

  2. ZooKeeper入门(四)

    入门:使用ZooKeeper的协调分布式应用 这个文档使你对ZooKeeper快速入门,它主要针对想尝试它的开发者.并且包含简单的单机的ZooKeeper服务的安装说明,一些验证是否运行的命令,和一个 ...

  3. Maven -- 将引用的本地jar文件打进war包里

    我们在做maven项目开发中有时候引用了本地第三方包,例如: <dependency> <groupId>org.artofsolving.jodconverter</g ...

  4. ClassCastException: org.apache.tomcat.websocket.server.WsServerContainer cannot be cast to javax.websocket.server.ServerContainer

    21:09:22.221 [MessageBroker-3] INFO c.t.s.s.impl.StockNewsServiceImpl - [2017-12-16 21:09:22] execut ...

  5. 【BZOJ】2054: 疯狂的馒头

    [题意]给定n个元素,m次给一段区间染色为i,求最终颜色. [算法]并查集 [题解]因为一个点只受最后一次染色影响,所以倒过来每次将染色区间用并查集合并,父亲指向最右边的点. 细节: 1.fa[n+1 ...

  6. java map转json servlet response

    1.手写一个map转json的类 1.1 调用方式 //给前端放回json数据 Map<String, Object> map = new HashMap<>(); map.p ...

  7. apache log 按日期记录 格式 <GOOD>-- (转)

    在apache的配置文件中找到ErrorLog logs/error_logCustomLog logs/access_log common Linux系统配置方法: 将其改为ErrorLog “| ...

  8. 阅读关于DuReader:百度大规模的中文机器阅读理解数据集

    很久之前就得到了百度机器阅读理解关于数据集的这篇文章,今天才进行总结!.... 论文地址:https://arxiv.org/abs/1711.05073 自然语言处理是人工智能皇冠上的明珠,而机器阅 ...

  9. Lucene7.2.1系列(一)快速入门

    系列文章: Lucene系列(一)快速入门 Lucene系列(二)luke使用及索引文档的基本操作 Lucene系列(三)查询及高亮 Lucene是什么? Lucene在维基百科的定义 Lucene是 ...

  10. Java多线程学习(四)等待/通知(wait/notify)机制

    转载请备注地址:https://blog.csdn.net/qq_34337272/article/details/79690279 系列文章传送门: Java多线程学习(一)Java多线程入门 Ja ...