shell脚本5数组

这篇具有很好参考价值的文章主要介绍了shell脚本5数组。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数组

1 数组定义方法

  • 数组名=(value0 valuel value2 …)

  • 数组名=( [0]=value [1]=value [2]=value …)

  • 列表名=“value0 valuel value2 …”

    • 数组名=($列表名)
  • 数组名[0]=“value”

    数组名[1]=“value”

    数组名[2]=“value”

2 获取数组长度

2.1 读取数组值

读取整个数组的值:${数组名[*]}

获取数组中其中一个元素的值:${数组名[索引号]}

2.2 数组切片

取数组中的某一段的元素的值

基本格式

${数组名[@或*]}:起始位置(起始索引):长度

echo ${arr1[*]:0:2} #这里是从0索引开始获得往后两位元素的值

echo ${arr1[*]:2:2} #获取从索引2开始往后获取两位元素的值

2.3 数组替换

  • 临时替换

$(数组名[@或*]/查找字符/替换字符}

eg:${数组名[*]/4/77}

  • 永久替换

数组名=($数组名[@或*]/查找字符/替换字符}

eg:数组名=($数组名[*]/4/77)

2.4 数组删除

删除整个数组:unset 数组名

删除指定元素:unset 数组名[索引号]

2.5 追加数组元素

数组名+=(要添加的元素)直接往后追加

3 实验

3.1 冒泡法

基本思想是对比相邻的两个元素值

  • 如果满足条件就交换元素值,把较小的元素移动到数组前面

把大的元素移动到数组后面(也就是交换两个元素的位置)

  • 这样较小的元素就像气泡一样从底部上升到顶部

算法思路

冒泡算法由双层循环实现,其中外部循环用于控制排序轮数

一般为要排序的数组长度减1次,因为最后一次循环只剩下一个数组元素,不需要对比

同时数组已经完成排序了。而内部循环主要用于对比数组中每个相邻元素的大小

以确定是否交换位置,对比和交换次数随排序轮数而减少
shell脚本5数组

3.2 直接选择法

与冒泡排序相比,直接选择排序的交换次数更少,所以速度会快些

基本思想

将指定排序位置与其它数组元素分别对比,

如果满足条件就交换元素值,注意这里区别冒泡排序,

不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换
shell脚本5数组

这样排序好的位置逐渐扩大,最后整个数组都成为已排序好的格式
反序排序

以相反的顺序把原有数组的内容重新排序

3.3 反排序法

基本思想

把数组最后一个元素与第一个元素替换,倒数第二个元素与第二个元素替换,以此类推,直到把所有数组元素反转替换

有数组的内容重新排序。
shell脚本5数组文章来源地址https://www.toymoban.com/news/detail-445642.html

到了这里,关于shell脚本5数组的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux中shell脚本——shell数组、正则表达式及文件三剑客之AWK

    目录 一.shell数组 1.1.数组分类 1.2.定义数组方法 二.正则表达式 2.1.元字符 2.2.表示次数 2.3.位置锚定 2.4.分组 2.5.扩展正则表达式 三.文本三剑客之AWK 3.1.awk介绍及使用格式 3.2.处理动作 3.3.awk选项 3.4.awk处理模式 2.5.awk常见的内置变量  2.6.if条件判断 1.1.数组分类 ①关联数组:必

    2024年02月12日
    浏览(52)
  • linux环境下Shell脚本中定义函数

    说实话,这是我第一次用Shell来定义函数,之前也写了很多shell脚本,但是体量都不大,所以基本上是按照需求罗列了多个命令来实现的,这次也是一样,但是我发现重复的地方太多了,所以还是要拿出看见本事“抽象函数”来解放我懒惰的手指 检测特定名称的进程是否存在

    2024年02月12日
    浏览(51)
  • Linux shell编程学习笔记15:定义数组、获取数组元素值和长度

     * 20231103 增加了 五、数组拼接或合并 数组是一种常见的数据结构。跟大多数编程语言一样,大多数Linux shell脚本支持数组,但对数组的支持程度各不相同,比如数组的维度,是支持一维数组还是多维数组?再如,数组元素的下标是从 0 开始还是从1开始?则因shell而异,下面

    2024年02月06日
    浏览(70)
  • Shell:脚本中调用另一个脚本不同方法

            在主shell脚本中调用子shell脚本有三种不同方法(fork, exec, source)。 fork是最普通的, 就是直接在脚本里面用/directory/script.sh来调用script.sh这个脚本. 运行的时候开一个sub-shell执行调用的脚本,sub-shell执行的时候, parent-shell还在。 sub-shell执行完毕后返回parent-shell. sub-shell从

    2024年01月24日
    浏览(42)
  • shell脚本中对明码加密的方法

    工作中连接数据库或登陆时,应避免在代码中或者配置文件中直接使用明码,因为明码可能会造成数据泄露等不安全操作,现对shell脚本中对明码加密解密操作进行说明,从而方便的对敏感信息做加密处理。本文推荐使用base64编码加密方法对各种明码进行加密,上手快且使用

    2024年02月11日
    浏览(32)
  • 盘点Shell脚本8种字符串截取方法

    这篇文章主要介绍了Shell脚本8种字符串截取方法总结,每个方法给出了实例代码和操作结果,一目了然,需要的朋友可以参考下 Linux 的字符串截取很有用。有八种方法。 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符。 代码如下: echo ${var#*//} 其中

    2024年02月14日
    浏览(49)
  • shell脚本实现删除服务器指定目录下文件方法

    上述脚本中,find 命令用于查找指定目录下4天以前的文件,并将其删除。其中,-type f 表示只查找普通文件,不包括目录和符号链接等其他类型的文件;-mtime +3 表示查找修改时间早于3天前的文件;-delete 表示删除查找到的文件。 脚本中的 $folder_path 可以替换为实际的目录路径

    2023年04月19日
    浏览(64)
  • 简单实用!shell脚本实现ssh远程链接的三种方法

    在ubuntu系统中安装SSH客户端: 创建名为connect_remote.sh的shell脚本文件: 请确保将REMOTE_IP和REMOTE_USER变量替换为实际的远程电脑IP地址和用户名。 保存文件后,给与脚本可执行权限: 运行shell脚本,连接远程电脑: 当运行此脚本时,系统会提示输入远程电脑的密码,输入密码后

    2024年02月17日
    浏览(46)
  • Shell脚本中文英文多语言国际化和命令行批处理(bash sh cmd bat)中定义函数的简单写法

    有时候为了方便别人使用,我们会选择去编写各种各样的命令行脚本:给Windows用户编写 .bat cmd批处理脚本,给macOS、Linux用户编写 .sh bash shell脚本。 面向国内用户当然应当首选中文作为脚本的显示语言,如果还要支持海外用户使用,那么能提供国际化多语言( i18n )支持那是

    2024年02月08日
    浏览(55)
  • C语言,Linux,静态库编写方法,makefile与shell脚本的关系。

    静态库编写: 编写.o文件 gcc -c( 小写) seqlist.c(需要和头文件、main.c文件在同一文件目录下) libs.a- 去掉lib与.a剩下的为库的名称‘s’。 -ls 是指库名为s。 -L 库的路径。 makefile文件编写: 这个是编译后的文件,app文件为编译后的二进制文件。      makefile与shell脚本关系 shell 脚

    2024年02月12日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包