shell脚本function传参的使用

news2024/11/25 20:51:13

这里直接上操作来说明function 的传参

新建一个脚本

vi 1.sh

#!/bin/bash
function check_a {
     echo $2
     echo $3
     echo "this is check_a"
}
function check_b {
     echo $2
     echo "this is check_b"
}
$1   #$1作为选择执行哪个function的参数

执行以下这个脚本传入参数看看会有什么结果

sh 1.sh check_a kafka rabbitmq

 

sh 1.sh check_b kafka

 可以看到执行两个function函数的脚本都有输出固定的参数,说明$1是传参成功的,但是脚本里定义的变量参数都输出为空,说明没有参数传入,但是在执行语句的时候明明有写入参数

更改一下脚本

#!/bin/bash
function check_a {
     echo $2
     echo $3
     echo "this is check_a"
}
function check_b {
     echo $2
     echo "this is check_b"
}
$1 $2 $3

执行以下这个脚本传入参数看看会有什么结果

sh 1.sh check_a kafka rabbitmq

 sh 1.sh check_b kafka

可以看到check_a脚本输出了$2变量参数,但是$2输出的参数是有问题的,$2输出了rabbitmq,这个参数应该是$3变量输出才对,然而$3变量参数输出为空,kafka参数依旧没有输出,check_b脚本输出的$2参数也依旧是空

再次更改脚本

#!/bin/bash
function check_a {
     echo $1
     echo $2
     echo "this is check_a"
}
function check_b {
     echo $1
     echo "this is check_b"
}
$1 $2 $3

 执行以下这个脚本传入参数看看会有什么结果

sh 1.sh check_a kafka rabbitmq

 sh 1.sh check_b kafka

 可以看到这次check_a脚本正确输出了所有的变量参数,check_b也正确的输出了所有变量参数,其实是因为在外部传入脚本的参数不能直接传到function函数定义的脚本里面,只能先传到脚本里,在通过定义每个function函数的参数队列去重新传入参数到function函数的脚本中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/459879.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试不够快?试试这招!让pytest多进程/多线程执行测试用例,轻松提升测试效率!

目录:导读 前言: 多进程执行用例之pytest-xdist pytest-xdist分布式测试的原理: pytest-xdist分布式测试的流程: 多线程执行用例之pytest-parallel 常用参数配置 pytest-parallel与pytest-xdist对比说明: 结语 前言&#…

vue修改当前页面query参数

最近在项目中手写分页器(为什么手写,因为对分页器样式外观要求比较严苛),遇到一个需求,就是我们在点击分页的时候,再进入详情,之后回退希望能够回到之前的页码值。 解决这个需求,个…

研报精选230425

目录 【行业230425华金证券】电子行业动态分析:23Q1电子板块环比略微下降,半导体设备重仓持股显著上升 【行业230425中泰证券】电力设备与新能源行业周报:特斯拉一季度储能收入高增,宁德时代发布凝胶态电池 【行业230425长城国瑞证…

行业分析| 视频监控——AI自动巡检

随着视频监控的普及,现在很多社区、工地、车间、厂区、超市、商铺、酒店、餐馆等场所都安装了视频监控系统。当安装的视频监控出现故障时,我们该如何进行简单的视频故障识别呢?如果只依靠人工对视频故障识别排查,工作量是相当大的…

动态规划猜法中外部信息简化的相关问题(上)

文章目录 1、Leetcode 312.戳气球(困难)1.1 题目描述1.2 思路分析1.3 代码实现1.4 启示 2、Leetcode 546.移除盒子(困难)2.1 题目描述2.2 思路分析2.3 代码实现 3、消除字符3.1 题目描述3.2 思路分析3.3 代码实现 1、Leetcode 312…

ARM buildroot 的引入

一、X210 的 bsp 介绍 1、嵌入式 linux 产品的 bsp 介绍 (1) 大部分的 ARM 架构的 linux 平台的 bsp 的内容和结构都是相似的。 (2) bsp 一般是芯片厂家/板卡厂家提供的。 2、X210 的 linuxQT bsp 整体介绍 (1) tslib_x210_qtopia.tgz 是用来支持 QT 的触摸屏操作的应用层库。…

操作系统笔记——绪论

第一章绪论 1.1 操作系统的基本概念 1.1.1计算机硬件的基本组成 (冯 ~诺伊曼模型) ,由运算器,存储器,控制器,输入设备,输出设备组成。 引入操作系统的目的:提供一个计算机用户与…

【2. 初学ROS,年轻人的第一个Node节点】

【2. 初学ROS,年轻人的第一个Node节点】 1. 工作空间设置2. 创建Package3. 回访依赖包4. 创建Node节点5. 源码编译6. 运行Node节点7. Node节点完善8. 总结 本教程是B站阿杰视频的笔记 视频地址:https://www.bilibili.com/video/BV1nG411V7HW 超声波传感器…

streamx平台部署

一. streamx介绍 StreamPark 总体组件栈架构如下, 由 streampark-core 和 streampark-console 两个大的部分组成 , streampark-console 是一个非常重要的模块, 定位是一个综合实时数据平台,流式数仓平台, 低代码 ( Low Code ), Flink & Spark 任务托…

【PWN刷题__ret2shellcode】[HNCTF 2022 Week1]ret2shellcode

本蒟蒻的ret2shellcode的开篇之作! 第一次实战ret2shellcode,该类型的简单题但是也研究了很久! 目录 前言 一、checksec查看二进制文件​ 二、查找后门函数 三、IDA反汇编 bss段 mprotect()函数 四、GDB调试 GDB基本的一些用法 偏移量计算 五…

OpenSearch图搜图、文搜图向量检索最佳实践

一、向量检索介绍 1.1 多模态信息的典型特点-非结构化 信息可以被划分为两大类:当信息能够用数据或统一的结构加以表示,称之为结构化数据;当信息无法用数字或统一的结构表示,称之为非结构化数据。非结构数据与结构化数据相比较而…

Rockchip芯片单板适配OpenHarmony的方法

Rockchip芯片单板适配OpenHarmony的方法 1 整体思路 OpenHarmony是一个上层用户操作系统,在设计上希望兼容不同的底层系统。针对于L2的Linux标准设备,OpenHarmony对Linux、Uboot等底层系统没有太多的依赖,并且在驱动方面,HDF也兼…

蓝桥杯省一经验+考试流程+技巧分享

今年拿了省一,开心,我渡梦酒也可以拿奖奖啦。 我对整体参赛流程还是比较熟悉了,给大家留下一点值得参考的东西~。 这篇纯纯经验和技巧分享,请放心食用~ 目录 考试流程 考试代码怎么提交 考完结束需要做什么 做题小技巧&#xf…

适合学生党的蓝牙耳机品牌有哪些?性价比高的无线耳机推荐

相较于有线耳机,蓝牙耳机的受欢迎程度可谓是越来越高,当然,这也离不开部分手机取消耳机孔的设计。最近看到很多网友问,适合学生党的蓝牙耳机品牌有哪些?针对这个问题,我来给大家推荐几款性价比高的无线耳机…

VR全景摄影,全景VR展示模式

目前,全景概念已经被大众熟知,很多行业尤其是房产、汽车等已经开始大批量使用全景展示的方式提高获客率和推广率。VR全景摄影以全景摄影技术为基础,结合虚拟现实技术,可以让用户身临其境,沉浸式地感受虚拟环境。 一、V…

【 Spring AOP 】

文章目录 一、什么是 Spring AOP?二、为什要⽤ AOP?三、AOP 的组成四、Spring AOP 的实现五、Spring AOP 实现原理 一、什么是 Spring AOP? AOP(Aspect Oriented Programming):⾯向切⾯编程,它…

【Linux常见指令以及权限理解】基本指令(2)

写在前面 今天我们继续学习Linux的基本指令, 这里是上一篇博客的链接:http://t.csdn.cn/9AgHP 接下来我会继续讲解Linux指令相关内容。 目录 写在前面 1. man 描述: 用法: 例子: 例1: 例2&#…

MC9S12G128开发板—实现按键发送CAN报文指示小车移动功能

实验环境:MC9S12G128开发板 基本功能:控制开发板上的按键,模拟车辆移动的上下左右四个方位,通过can通信告诉上位机界面,车辆轨迹的移动方位。 1. 1939报文发送的示例代码 MC9S12G128开发板1939协议发送can报文数据的…

redmine问题跟踪系统4.1版本一键安装包下载

很好用的项目管理,缺陷跟踪系统,开源免费使用 Version 4.1.1-4 2020-08-31 由 redmineplugins.cn Admin 在 超过 2 年 之前添加 Version 4.1.1-4 2020-08-31 Maintenance releaseUpdated Apache to 2.4.46Updated Git to 2.28.0Updated PHP to 7.3.21U…

初识uniapp

创建小程序 依次点击HBuilderx 左上方的按钮:文件->新建->项目 然后打开该界面,输入项目名称,点击 浏览 按钮,可以选择项目保存的目录,这些完成后点击 创建 按钮就好了 比如小颖的项目名叫 :test-y…