Shell函数调用

2023-10-27


在shell脚本中,有些命令或者某些操作需要频繁的使用时,每次都重新写太过繁琐,这时我们就可以使用函数,当需要使用时,直接调用函数使用即可。

一.函数基本格式

函数时将一些命令序列按格式写在一起,方便重复使用命令序列
函数定义格式:

方法一:
function 函数名{
      命令序列
      return x  #显示函数的结束
}
方法二:
函数名 (){
 命令序列
}

函数调用:

函数名 [参数1][参数2]

二.函数调用

2.1函数中调用

直接在函数中调用当前函数
在这里插入图片描述

2.2函数调用函数

在定义一个函数的时候,在其内也可以调用其它函数

在这里插入图片描述

2.3外部调用

函数的作用在其模块化,方便下次使用的时候,直接调用使用。所以在我们每次写脚本时,可以直接调用之前写好的函数,只需在使用前进行声明即可。

在这里插入图片描述

2.4案例

使用函数配置本地yum源仓
在这里插入图片描述

三.总结

1.函数:封装的可重复使用的具有特点功能的代码,有点类似于命令别名
2.函数可以在函数中直接调用,也可在函数外调用,
3.外部调用时必须先声明调用的函数
4.对于同名函数,只识别最后定义的函数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Shell函数调用 的相关文章

  • 规范化 solaris 上的路径名

    在 GNU 系统上我只会使用readlink f SOME PATH 但 Solaris 没有 readlink 我更喜欢在 bash 中运行良好的程序 但如果需要的话其他程序也可以 Edit 到目前为止 我想到的最好的方法是使用 cd 和
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • sleep 0 有特殊含义吗?

    我看到很多用法sleep 0在我的一个客户项目中 代码看起来像这样 while true sleep 0 end 阅读一些像这样的答案this https stackoverflow com questions 3727420 signif
  • 如何在特定 systemd 服务重新启动时触发自定义脚本运行

    我想知道如何安排自定义脚本在重新启动服务时运行 我的用例是 每当重新启动 Tomcat 服务时 我都必须运行多个命令 我想知道是否有一种方法可以编写脚本并安排它在重新启动 Tomcat 服务时运行 我已将 tomcat 脚本设置为 syst
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何
  • 为什么 Linux 对目录使用 getdents() 而不是 read()?

    我浏览 K R C 时注意到 为了读取目录中的条目 他们使用了 while read dp gt fd char dirbuf sizeof dirbuf sizeof dirbuf code Where dirbuf是系统特定的目录结构
  • 如何查找连接到 AF_INET 套接字的客户端的 UID?

    有什么方法或类似的东西ucred for AF UNIX如果是AF INET插座 TCP在我的例子中 找出连接到我的套接字的客户端的UID 还有 proc net tcp但它显示了UID of the creator插座的而不是连接的cli
  • 没有可用的符号表信息

    我正在测试第三方的库 它崩溃了 当我想查看崩溃的原因时 我的 gdb 告诉我没有可用的调试符号 Program received signal SIGSEGV Segmentation fault Switching to Thread 0
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • 在 Linux 上的 Python 中使用受密码保护的 Excel 工作表

    问题很简单 我每周都会收到一堆受密码保护的 Excel 文件 我必须解析它们并使用 Python 将某些部分写入新文件 我得到了文件的密码 当在 Windows 上完成此操作时 处理起来很简单 我只需导入 win32com 并使用 clie
  • 如何更改 Ubuntu 14.04 上的 php-cli 版本?

    我是 Linux 新手 在篡改时破坏了一些 php 设置 如果我执行一个包含以下内容的 php 脚本 phpinfo 它显示 php 版本为 5 6 但通过命令行 如果我运行php v它返回 7 0 版本 我想让两个版本匹配 我怎样才能修复
  • 为什么我不能将 sed 的输出重定向到文件

    我正在尝试运行以下命令 someprogram tee dev tty sed s 2 gt output file 但当我去查看时 该文件始终是空白的 如果我删除 gt output file从命令末尾 我可以看到 sed 的输出 没有任
  • 并行运行 make 时出错

    考虑以下制作 all a b a echo a exit 1 b echo b start sleep 1 echo b end 当运行它时make j2我收到以下输出 echo a echo b start a exit 1 b star
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte
  • 从 Amazon S3 存储桶下载文件的脚本

    尝试编写脚本以从 Amazon S3 存储桶下载文件 cURL 网站上的示例遇到问题 下面的脚本产生 我们计算的请求签名与您的签名不匹配 假如 检查您的密钥和签名方法 感谢任何帮助 bin sh file filename php buck
  • 为什么我收到“无法进行二进制日志记录”的信息。在我的 MySQL 服务器上?

    当我今天启动 MySQL 服务器并尝试使用以下命令进行一些更改时用于 MySQL 的 Toad http www quest com toad for mysql 我收到此消息 MySQL 数据库错误 无法进行二进制日志记录 消息 交易级别
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced
  • 在 Linux 上更快地分叉大型进程?

    在现代 Linux 上达到与 Linux 相同效果的最快 最好的方法是什么 fork execve combo 从一个大的过程 我的问题是进程分叉大约 500MByte 大 并且一个简单的基准测试只能从进程中实现约 50 个分叉 秒 比较最
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh

随机推荐

  • Async异步处理【Springboot】

    简单实现异步处理 springboot异步处理 先建立一个controller目录 再建一个AsynController java 建立一个service目录 再建立一个AsynController java 启动项目 效果 1 在三秒以后
  • 电子科技大学软件工程期末复习笔记(四):软件设计

    目录 前言 重点一览 软件工程设计 软件设计定义 软件设计包含的两类活动 软件设计包涵 软件的质量属性 各种设计技术 程序结构 深度 宽度 扇入 扇出 完整的设计规格 软件体系架构 用户界面设计的3条原则 用户界面设计的3种分析 结构化设计
  • 5. zksnark 几种实现算法性能对比

    像 zk SNARK 这样的零知识证明有很多应用 Zcash利用零知识证明 来保护隐私 Coda和Mir利用零知识证明将整个区块链压缩到只有几K字节 0x和Matter则利用零知识证明将许多交易封装为以太坊 上的单一证明 1 可信设置 传统
  • Jumpserver 堡垒机

    一 Jumpserver简介 跳板机概述 跳板机就是一台服务器 开发或运维人员在维护过程中首先要统一登录到这台服务器 然后再登录到目标设备进行维护和操作 跳板机缺点 没有实现对运维人员操作行为的控制和审计 使用跳板机的过程中还是会出现误操作
  • unity的常见错误处理

    黄色提示 文件丢失 第一种情况 显示文件丢失 就去把文件拖到丢失的目录下 第二种情况 代码错误 无法识别 一般是调用的参数打错 红色提示 无法识别 当unity出现下列代码的情况时 we can t assign a new guid be
  • rabbitmq-给消息设置过期时间(九)

    TTL 全称 Time To Live 存活时间 过期时间 当消息到达存活时间后 还没有被消费 会被自动清除 RabbitMQ可以对消息设置过期时间 也可以对整个队列 Queue 设置过期时间 方式一 通过给队列配置属性设置消息的过期时间
  • js(art-­template、cookie、session、分页、注册、form、audio、video、移动端event、touch.js)

    art template 1 介绍 art template是一个简单且超快速的模板引擎 可通过范围内预先声明的技术优化模板渲染速度 从而实现接近JavaScript极限的运行时性能 同时它支持nodeJS和浏览器 2 基本使用 引入art
  • k8s之PV、PVC和StorageClass

    PV 什么是PV PV 描述的 则是一个具体的 Volume 的属性 比如 Volume 的类型 挂载目录 远程存储服务器地址等 创建PV 使用yaml来定义PV apiVersion v1 kind PersistentVolume me
  • Java多线程简析——Synchronized(同步锁)、Lock以及线程池

    Java多线程 Java中 可运行的程序都是有一个或多个进程组成 进程则是由多个线程组成的 最简单的一个进程 会包括mian线程以及GC线程 线程的状态 线程状态由以下一张网上图片来说明 在图中 红框标识的部分方法 可以认为已过时 不再使用
  • 关于npm cnpm yarm pnmp

    npm npm是什么 npm是node package manager的简称 node js 的包管理器 用于node插件管理 包括安装 卸载 管理依赖等 pm 是随同 node js 一起安装的包管理工具 能解决 node js 代码部署
  • mysql建表注意事项。

    1 表达是否概念的字段 必须使用is xxx的方式 数据类型是unsigned tinyint 1表示是 0表示否 pojo类中任何布尔类型的变量 都不要加is前缀 2 表名 字段名必须使用小写字母或者数字 禁止出现数字开头 禁止只出现两个
  • ShardingSphere系列二(ShardingSphere实现分库分表)

    文章目录 1 高性能数据库集群架构模式 1 1 读写分离 1 2 数据分片 分库分表 2 实现方式 2 1 程序代码封装 2 2 中间件封装 2 3 常用解决方案 3 ShardingSphere 4 ShardingJDBC 4 1 核心
  • 项目简单日志配置(控制台和输出文件)

    首先引入相关的log4j的jar包 然后配置log4j properties文件 简单配置如下 日志的输出级别以及输出目的地 这里是配置输出到控制台与日志文件 log4j常用的优先级FATAL gt ERROR gt WARN gt INF
  • MATLAB----模糊聚类

    data 1739 94 1675 15 2395 96 3 373 3 3087 05 2429 47 4 1756 77 1652 1514 98 3 864 45 1647 31 2665 9 1 222 85 3059 54 200
  • ReactHooks常用钩子总结

    ReactHooks常用钩子 重学react 这里对常用的ReactHooks做一下简单的总结 1 useState useState 会返回一个数组 一个 state 一个更新 state 的函数 在初始化渲染期间 返回的状态 state
  • 左值与右值

    目录 一 类型 二 地址 三 举例 一 类型 1 均与类型无关 int型 float型等等 均有 二 地址 1 右值不可取地址 引用的右值 程序没有分配内存区域 无地址 2 左值可以取地址 地址为所引用的实例 变量 对象的地址 int ma
  • Qt利用setStyleSheet设置样式

    Qt中设置按钮或QWidget的外观是 可以使用QT Style Sheets来进行设置 非常方便 可以用setStyleSheet font bold font size 20px color rgb 241 70 62 backgrou
  • [总结]怎么给VM(虚拟机)添加新磁盘

    1 关闭系统 点击VM gt Settings弹出的Add Hardware Wizard对话框 点击Add gt Hard Disk gt Next gt Create a new virtual disk gt SCSI Recomme
  • 软件设计 基础篇(二) 交互设计

    软件设计 基础篇 系列文章目录 软件设计 基础篇 二 交互设计 文章目录 软件设计 基础篇 系列文章目录 1 软件设计 1 1 设计简介 1 2 设计基础 2 交互设计 2 1 交互概述 2 2 交互起源 总结 1 软件设计 软件设计是从软
  • Shell函数调用

    文章目录 一 函数基本格式 二 函数调用 2 1函数中调用 2 2函数调用函数 2 3外部调用 2 4案例 三 总结 在shell脚本中 有些命令或者某些操作需要频繁的使用时 每次都重新写太过繁琐 这时我们就可以使用函数 当需要使用时 直接