我们一起来学Shell - 初识shell


我们一起来学Shell - shell的变量


我们一起来学Shell - shell的条件判断


我们一起来学Shell - shell的循环控制


我们一起来学Shell - shell的数组


我们一起来学Shell - shell的函数


我们一起来学Shell - shell的并发及并发控制


我们一起来学Shell - 正则表达式

Shell 函数的本质是一段可以重复使用的脚本代码,这段代码被提前编写好了,放在了指定的位置,使用时直接调取即可

定义函数

  • 可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
function name () {
commands
[return value]
}
name () {
commands
[return value]
}
  • function 是 Shell 中的关键字,专门用来定义函数;

  • name 是函数名称;

  • commands 是函数要执行的代码,也就是一组语句;

  • return value 表示函数的返回值,其中 return 是 Shell 关键字,专门用在函数中返回一个值;这一部分可以写也可以不写。

  • 由 { } 包围的部分称为函数体,调用一个函数,实际上就是执行函数体中的代码。

  • 函数的优势

    • 方便n次使用,减少代码量,使之方便,整洁。
    • 当需要修改里面的重复代码时,只需要修改一次函数即可实现需求;
    • 将函数写进文件,需要时直接通过文件调用

执行不带参数的函数

直接输入函数名即可,不需要带括号

functionName
  • 执行函数时,函数名称前的关键字function和函数名称后面的()均不需要带上
  • 函数的定义必须要在执行的程序前定义或加载

执行带参数的函数

functionName arg1 arg2
  • Shell中的位置参数($1,$2$#,$?,$@)均可以做为函数的参数进行传递
  • $0比较特殊,仍然是父脚本的名称
  • 此时父脚本的参数会临时被函数的参数所掩盖或隐藏
  • 函数的参数变量是在函数体内里面进行定义

函数的执行总结

  • Shell各种程序的执行顺序为:系统别名->函数->系统命令->可执行文件等
  • 函数执行时,会和调用它的脚本共享变量,也可以为函数设定局部变量及特殊位置参数
  • 在Shell函数里面,return和exit功能类似,区别是
    • return是退出函数

      • return语句会返回一个值给调用函数的程序
    • exit则是退出脚本
      • exit则会返回一个值给执行当前脚本的Shell
  • 如果将函数单独存放为一个文件,在加载时需要使用source.进行加载
  • 在函数内部一般使用local定义局部变量仅在函数体内有效

我们一起来学Shell - shell的函数的更多相关文章

  1. 我们一起来学Shell - shell的并发及并发控制

    文章目录 bash的并发 未使用并发的脚本 简单修改 使用wait命令 控制并发进程的数量 文件描述符 查看当前进程打开的文件 自定义当前进程用描述符号操作文件 管道 我们一起来学Shell - 初识 ...

  2. 我们一起来学Shell - shell的数组

    文章目录 什么是数组 数组中常用变量 数组的定义 小括号定义数组变量 小括号加键值对定义数组变量 分别定义数组变量 动态地定义数组变量 数组赋值的切片 遍历数组 关联数组 我们一起来学Shell - ...

  3. 我们一起来学Shell - shell的循环控制

    文章目录 Shell 循环之 for 语句 Shell 循环之 while 语句 Shell 循环之 until 语句 Shell 循环控制 break指令 continue 指令 exit 指令 s ...

  4. 我们一起来学Shell - shell的条件判断

    文章目录 Shell 条件测试语法 符号说明 Shell 测试表达式 文件测试表达式 字符串测试表达式 整数操作符 逻辑操作符 测试表达式的区别总结 Shell 条件判断之if语句 单分支 IF 条件 ...

  5. shell流程控制&函数

    条件 if-then-elif-then-fi if的条件部分经常使用test EXPRESSION或[ EXPRESSION ]实现,test的用法可以参见test if 条件1 #if 条件1;t ...

  6. shell实现trim函数-去除字符串两侧的空格(包括tab,space键)

    shell实现trim函数效果去除字符串两侧的空格,以下三个命令等价,都能实现 sed 's/^\s*//' totrim.txt |sed 's/\s*$//'>trimed.txtsed ' ...

  7. shell中的函数、数组、报警系统脚本

    1.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这 个小单元的名字即可.格式: function f_name() {commond} ...

  8. shell编程之函数

    一.函数定义和调用 函数是Shell脚本中自定义的一系列执行命令,一般来说函数应该设置有返回值(正确返回0,错误返回非0).对于错误返回,可以定义其他非0正值来细化错误.使用函数最大的好处是可避免出现 ...

  9. centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课

    centos  shell脚本编程2 if 判断  case判断   shell脚本中的循环  for   while   shell中的函数  break  continue  test 命令   ...

随机推荐

  1. Centos7 查看文件命令总结

    ls命令 ls -d --文件或者目录是否存在 ls -l 或者ll --显示详细信息 ls -lt --文件按时间顺序排序(升序) ls -ltr --按时间倒叙排序 ls -i --显示索引节点 ...

  2. 【Java】数组

    文章目录 数组 一.数组的定义 二.数组的声明与创建 三.内存分析 四.三种初始化 五.数组的四个基本特点 六.数组边界 七.数组的使用 八.多维数组 九.Arrays类 十.稀疏数组 数组 一.数组 ...

  3. 如何使用 GitHub Pages 维护自己的博客

    目录 前置知识 实际操作 声明 本文地址:如何使用 GitHub Pages 维护自己的博客 前置知识 首先,你应该知道如何用 Hexo 在本地搭建一个博客系统,具体见 Hexo. 其次,我们如果想使 ...

  4. Abp vnext EFCore 实现动态上下文DbSet踩坑记

    背景 我们在用EFCore框架操作数据库的时候,我们会遇到在 xxDbContext 中要写大量的上下文 DbSet<>; 那我们表少还可以接受,表多的时候每张表都要写一个DbSet, 大 ...

  5. XXE题型记录

    XXE题型记录 [CSAWQual 2019]Web_Unagi 题解 打开题目,点开upload中的例子发现是上传xml文件 根据about中的提示Flag is located at /flag, ...

  6. Android学习笔记2

    4,用intent在activity之间传递数据(两个Activity可能不是在一个应用程序中) (1),从MainActivity向HelloActivity传递参数123 package com. ...

  7. 使用TortoiseGit和Git Bash不需要输入RSA密码(passphrase)的方法

    1. 安装和配置Putty 安装 官网下载Putty并安装. 生成ppk密钥 打开puttygen.exe(C:\Program Files\PuTTY\puttygen.exe), 点Convers ...

  8. Tomcat-给Tomcat添加第三方jar包

    给动态web工程添加额外jar包 1,打开项目结构菜单操作界面,添加一个自己的类库 2,添加你当前类库需要的jar包 3,选择你添加的类库,给哪个模块使用 4,选择Artifacts选项,将类库添加到 ...

  9. AOP操作-准备工作

    AOP操作(准备) 1,Spring 框架中一般基于 AspectJ 实现AOP操作 (1)什么是 AspectJ *AspectJ 不是 Spring 组成部分,独立AOP框架,一般把 Aspect ...

  10. thingsboard源码编译启动

    开发环境 不同的版本对应的开发环境不同(这里以3.3.3版本说明) jdk11+:参考jdk11+安装(win) Maven3.6+:Maven安装配置 Git:参考Git安装 IDEA: 参考IDE ...