shell脚本function传参的具体使用

 更新时间:2023年04月26日 08:26:23   作者:Apex Predator  
本文主要介绍了shell脚本function传参的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

这里直接上操作来说明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函数的脚本中

到此这篇关于shell脚本function传参的具体使用的文章就介绍到这了,更多相关shell function传参内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Shell脚本while、until循环语句简明教程

    Shell脚本while、until循环语句简明教程

    这篇文章主要介绍了Shell脚本while、until循环语句简明教程,简洁易懂的简明教程,需要的朋友可以参考下
    2014-07-07
  • Shell内置命令教程之alias和echo

    Shell内置命令教程之alias和echo

    我们日常使用shell输入命令得到结果的方式是交互式的方式,而shell脚本使用的是非交互式方式,shell提供了alias功能来简化我们的日常操作,下面这篇文章主要给大家介绍了关于Shell内置命令教程之alias和echo的相关资料,需要的朋友可以参考下
    2022-03-03
  • shell中常用的命令之diff和patch用法

    shell中常用的命令之diff和patch用法

    这篇文章主要介绍了shell中常用的命令:diff和patch,在这里diff是比较文件内容,patch是打补丁的,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • CentOS 6.3下给PHP添加mssql扩展模块教程

    CentOS 6.3下给PHP添加mssql扩展模块教程

    这篇文章主要介绍了CentOS 6.3下给PHP添加mssql扩展模块教程,本文使用freetds编译安装实现,需要的朋友可以参考下
    2014-09-09
  • shell脚本nicenumber实现代码

    shell脚本nicenumber实现代码

    给出一个数字,用逗号分隔的形式显示出来,希望DD和TD被实例化等
    2016-08-08
  • 查看linux服务器上jdk的安装路径方法

    查看linux服务器上jdk的安装路径方法

    这篇文章主要介绍了查看linux服务器上jdk的安装路径方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Shell脚本中实现把输入的密码转换为*(星号)的方法

    Shell脚本中实现把输入的密码转换为*(星号)的方法

    这篇文章主要介绍了Shell脚本中实现把输入的密码转换为*(星号)的方法,从而把密码字符串隐藏起来,比较实用的一个功能,在做交互设计时非常有用哦,需要的朋友可以参考下
    2014-06-06
  • 如何查看Linux提供的Shell解析器

    如何查看Linux提供的Shell解析器

    这篇文章主要介绍了查看Linux提供的Shell解析器的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Shell脚本之Expect免交互的实现

    Shell脚本之Expect免交互的实现

    这篇文章主要介绍了Shell脚本之Expect免交互的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Linux 中的 Openssl命令及实例代码

    Linux 中的 Openssl命令及实例代码

    OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用
    2017-09-09

最新评论