linux常用shell脚本_linux shell命令

linux常用shell脚本_linux shell命令代码重用的时候,通过函数非常方便。

linux常用shell脚本_linux shell命令


代码重用的时候,通过函数非常方便。在函数代码块中实现逻辑,在需要使用的时候调用该函数,建立脚本:

#/bin/bash
function echo1 {
    echo "This is function 1"
}

echo2() {
    echo "This is function 2"
}

echo1
echo2

运行后输出:

This is function 1
This is function 2
1
2

shell中的函数必须先定义后使用,否则就会报错。同时函数名也必须是唯一的,如果定义了两个相同名字的函数,后面的会覆盖前面的。

注意函数体的左花括号{和后面的命令之间必须有空格或换行,如果将最后一条命令和右花括号}写在同一行,命令末尾必须有;号。

linux常用shell脚本_linux shell命令


之前我们在使用脚本的时候也给脚本传参过,向函数传递参数以及函数中处理参数的过程跟这个相同。比如用
$#表示参数的总个数,用$1表示第一个参数等等。

1 传递普通变量

向函数传递普通变量的时候只要在调用的时候把参数写在后面即可,举例如下:

#/bin/bash
function process_param {
    if [ $# -eq 0 ] || [ $# -gt 2 ];then
        echo "-1"
    elif [ $# -eq 1 ];then
        echo $[ $1 * 10 ]
    else
        echo $[ $1 + $2 ]
    fi
}

value=$(process_param)
echo "value of process_param is $value"

value=$(process_param 1)
echo "value of process_param 1 is $value"

value=$(process_param 1 2)
echo "value of process_param 1 2 is $value"

运行后结果为:

value of process_param is -1
value of process_param 1 is 10
value of process_param 1 2 is 3

2传递数组

向函数传递数组的时候,如果以变量名的形式传参,函数内部将只能拿到数组的第一个元素。举例如下

#/bin/bash
function show_array {
   echo "num is array is $@"
   array=$1
   echo "array is ${array[*]}"
}

array_source=(1 2 3)
echo "array_source is ${array_source[*]}"
show_array $array_source 

运行后结果为:

array_source is 1 2 3
num is array is 1
array is 1

如果想要传递整个数组的话,在函数调用处函数内部都要使用echo语句,举例如下:

#/bin/bash
function show_array {
    array=($(echo "$@"))
    for value in ${array[*]}
    do
        echo "value is $value"
    done
}

test_array=(1 2 3)
echo "array_source is ${test_array[*]}"
show_array $(echo ${test_array[*]}) 

运行后结果如下:

array_source is 1 2 3
value is 1
value is 2
value is 3

通过echo语句可以传递整个数组了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/12023.html

(0)

相关推荐

  • sql server 定时备份_windows10程序在哪

    sql server 定时备份_windows10程序在哪引言 在使用SqlServer Express 版本的时候发现,这个版本不支持通过数据库的代理方式进行数据库的维护。 解决方案 使用SQL语句加windows任务计划的方式解决 具体步骤如下 创建备份

    2023-05-04
    105
  • 一站式Kafka平台解决方案——KafkaCenter

    一站式Kafka平台解决方案——KafkaCenterKafkaCenter是什么 KafkaCenter是一个针对Kafka的一站式,解决方案。用于Kafka集群的维护与管理,生产者和消费者的监控,以及Kafka部分生态组件的使用。 对于Kafka的平

    2023-02-28
    98
  • 前端前沿技术精选|千锋《JavaScript全套资料》免费领[亲测有效]

    前端前沿技术精选|千锋《JavaScript全套资料》免费领[亲测有效]当下,随着5G商用脚步的靠近,很多传统的前端工程师并不能满足时下企业用人需求了,越来越多的开发模式以及前端框架不断的涌现出来,这也就要求程序员需

    2023-07-09
    75
  • Verilog HDL基本语法规则[通俗易懂]

    Verilog HDL基本语法规则[通俗易懂]词法规定 为对数字电路进行描述,Verilog语言规定了一套完整的语法结构。 1.间隔符 Verilog 的间隔符主要起分隔文本的作用,可以使文本错落有致,便于阅读与修改。间隔符包括空格符(\b)、T

    2023-07-28
    75
  • Python中断言的使用方法及优势

    Python中断言的使用方法及优势在程序设计中,断言是一种可以在代码中嵌入的一个可以被检查的布尔表达式,用来表示程序员预计到时应该为真的条件。如果断言计算结果为假,就意味着当前的代码中存在缺陷。

    2023-12-19
    58
  • Oracle入门学习五「建议收藏」

    Oracle入门学习五「建议收藏」学习视频: https://www.bilibili.com/video/BV1tJ411r7EC?p=35 数据的完整性:保证插入表格的数据必须正确。包括实体完整性、区域完整性、引用完整性

    2023-02-24
    105
  • Python安装工具:setup.py

    Python安装工具:setup.pyPython是一种解释型、面向对象、动态数据类型的高级程序设计语言。它具有简洁、易读、易学等特点,在全球范围内得到了广泛的应用。Python在各种领域都有应用,在科学计算、人工智能、数据分析等领域得到了广泛的应用。但是,Python的安装过程却比较繁琐,需要安装各种依赖库、设置环境变量等。这时,Python安装工具——setup.py就派上用场了。

    2024-02-05
    44
  • PLSQL错误总结[通俗易懂]

    PLSQL错误总结[通俗易懂]1、'' is null为true,''和null是同一个东西。 神经病写法:无论vc_itemids是null还是'',or后面的那一句都为false

    2023-03-07
    107

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注