shell 冒泡排序 数组的使用
来源:互联网 发布:盛势网络剧08bilibili 编辑:程序博客网 时间:2024/05/28 17:04
#! /bin/bashdeclare -a arrayfor((i=1;i<=5;i++))doread -p "输入第$i个数:" array[$i]donefor((j=1;j<=5;j++))dofor((n=$[ $j + 1 ];n<=5;n++))doif [ ${array[$j]} -gt ${array[$n]} ] ; thena=${array[$n]}array[$n]=${array[$j]}array[$j]=$afidoneecho ${array[$j]}done
注意取数组时要加{} 如
${array[$j]}
${array[1]}取所有数组元素 echo ${a[*]}
以下转自www.cnblogs.com/chengmo
1.数组定义
[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ echo $a
1
[chengmo@centos5 ~]$ echo $a
1
一对括号表示是数组,数组元素用“空格”符号分割开。
2.数组读取与赋值
- 得到长度:
[chengmo@centos5 ~]$ echo ${#a[@]}
5
用${#数组名[@或*]} 可以得到数组长度
- 读取:
[chengmo@centos5 ~]$ echo ${a[2]}
3
[chengmo@centos5 ~]$ echo ${a[*]}
1 2 3 4 5
用${数组名[下标]} 下标是从0开始 下标是:*或者@ 得到整个数组内容
- 赋值:
[chengmo@centos5 ~]$ a[1]=100[chengmo@centos5 ~]$ echo ${a[*]}
1 100 3 4 5[chengmo@centos5 ~]$ a[5]=100
[chengmo@centos5 ~]$ echo ${a[*]}1 100 3 4 5 100直接通过 数组名[下标] 就可以对其进行引用赋值,如果下标不存在,自动添加新一个数组元素
- 删除:
[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ unset a
[chengmo@centos5 ~]$ echo ${a[*]}[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ unset a[1]
[chengmo@centos5 ~]$ echo ${a[*]}
1 3 4 5
[chengmo@centos5 ~]$ echo ${#a[*]}
4
直接通过:unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。
3.特殊使用
- 分片:
[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ echo ${a[@]:0:3}
1 2 3
[chengmo@centos5 ~]$ echo ${a[@]:1:4}
2 3 4 5
[chengmo@centos5 ~]$ c=(${a[@]:1:4})
[chengmo@centos5 ~]$ echo ${#c[@]}
4
[chengmo@centos5 ~]$ echo ${c[*]}
2 3 4 5
直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,上面例子:c 就是一个新数据。
- 替换:
[chengmo@centos5 ~]$ a=(1 2 3 4 5)
[chengmo@centos5 ~]$ echo ${a[@]/3/100}
1 2 100 4 5
[chengmo@centos5 ~]$ echo ${a[@]}
1 2 3 4 5
[chengmo@centos5 ~]$ a=(${a[@]/3/100})
[chengmo@centos5 ~]$ echo ${a[@]}
1 2 100 4 5
调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。
从上面讲到的,大家可以发现linux shell 的数组已经很强大了,常见的操作已经绰绰有余了。
转自: www.cnblogs.com/chengmo
0 0
- shell 冒泡排序 数组的使用
- 数组的冒泡排序
- 数组的冒泡排序.
- 数组的冒泡排序
- 数组的冒泡排序
- 数组的冒泡排序
- 数组的冒泡排序
- 数组的冒泡排序
- shell 写的冒泡排序
- 数组的排序:冒泡排序、选择排序
- 数组的详细使用及冒泡排序方法
- 使用冒泡法排序int类型的数组
- OC数组的冒泡排序
- 二维数组的冒泡排序
- 一维数组 冒泡排序 shell 排序 二分查找 C++
- 使用shell排序,插入排序,选择排序,冒泡排序,以及java的Arrays中自带的排序进行对比
- 数组与集合的应用之数组排序与查询(使用冒泡排序法)
- 数组的排序(选择/冒泡/插入排序)
- QT 中网络数据与本地数据的转换(Windows)
- 一只简单的网络爬虫(基于linux C/C++)————读取命令行参数及日志宏设计
- MyEclipse 快捷键(快捷键无效解决方案)
- 解决Could not reliably determine the server's fully qualified domain name
- LINUX常用命令大全
- shell 冒泡排序 数组的使用
- kingshard--一个Go开发高性能MySQL Proxy项目
- 一千行MySQL学习笔记(六)
- 我的Flask app 配置信息格式
- 网络请求(get&&post)
- C++中的**this
- 网络安全
- Hadoop与Spark等数据处理系统哪个是最好的?
- ElasticSearch模块介绍