摘抄bash与ksh数组使用之异同

2024-03-17 10:32

本文主要是介绍摘抄bash与ksh数组使用之异同,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载自:http://falcon-dgb.spaces.live.com/Blog/cns!5566E2215E60F837!1207.entry

 

在shell脚本编程中,数组是我们保存和处理信息的一种有效工具。本文简单介绍一下在bash和ksh中数组使用的异同。
* 数组的定义
          o 其实bash和ksh在数组使用上的主要区别就在于数组定义方式的不同。

          o bash
                + bash中数组定义采用形式: arr =(element1 element2 element3...... )。下面的例子将当前目录下文件名存入数组files中。
                  view plaincopy to clipboardprint?
                     1. #ls 
                     2. iostat.out  mpstat.out  sar-d.out   sar.post    vmstat.out 
                     3. #files=($(ls)) 
          o ksh
                + ksh中数组定义采用形式: set -A arr element1 element2 element3 ...... 。下面的例子实现与上例同样的功能。
                  view plaincopy to clipboardprint?
                     1. #ls 
                     2. iostat.out  mpstat.out  sar-d.out   sar.post    vmstat.out 
                     3. #set -A files $(ls) 

    * 数组的访问
          o 数组的访问主要包括: 获取数组中元素的个数, 获取特定索引数组元素, 遍历数组元素。在bash和ksh中这些操作基本是相同的。

          o 获取数组元素个数
            view plaincopy to clipboardprint?
               1. #echo ${#files[@]} 
               2. 5 

          o 获取特定数组元素
            view plaincopy to clipboardprint?
               1. #echo ${files[0]} 
               2. iostat.out 
               3. #echo ${files[1]} 
               4. mpstat.out 
               5. #echo ${files[2]} 
               6. sar-d.out 
               7. #echo ${files[3]} 
               8. sar.post 
               9. #echo ${files[4]} 
              10. vmstat.out 

          o 遍历数组元素
            view plaincopy to clipboardprint?
               1. #for i in ${files[*]}; 
               2. > do 
               3. >     echo "access file: $i" 
               4. >     ls -lh $i 
               5. > done 
               6. access file: iostat.out 
               7. -rw-r--r--   1 root     root        9.8K Nov 26 16:37 iostat.out 
               8. access file: mpstat.out 
               9. -rw-r--r--   1 root     root        6.4K Nov 26 16:37 mpstat.out 
              10. access file: sar-d.out 
              11. -rw-r--r--   1 root     root         29K Nov 26 16:37 sar-d.out 
              12. access file: sar.post 
              13. -rw-r--r--   1 root     root        101K Nov 26 16:37 sar.post 
              14. access file: vmstat.out 
              15. -rw-r--r--   1 root     root         551 Nov 26 16:37 vmstat.out 

这篇关于摘抄bash与ksh数组使用之异同的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

MySQL 衍生表(Derived Tables)的使用

《MySQL衍生表(DerivedTables)的使用》本文主要介绍了MySQL衍生表(DerivedTables)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学... 目录一、衍生表简介1.1 衍生表基本用法1.2 自定义列名1.3 衍生表的局限在SQL的查询语句select

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

MySQL分区表的具体使用

《MySQL分区表的具体使用》MySQL分区表通过规则将数据分至不同物理存储,提升管理与查询效率,本文主要介绍了MySQL分区表的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、分区的类型1. Range partition(范围分区)2. List partition(列表分区)3. H

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

SpringBoot3中使用虚拟线程的完整步骤

《SpringBoot3中使用虚拟线程的完整步骤》在SpringBoot3中使用Java21+的虚拟线程(VirtualThreads)可以显著提升I/O密集型应用的并发能力,这篇文章为大家介绍了详细... 目录1. 环境准备2. 配置虚拟线程方式一:全局启用虚拟线程(Tomcat/Jetty)方式二:异步

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意