shell中的数组操作小结和冒泡排序实现脚本分享

shell数组介绍:


代码如下:

//数组变量定义:
$ arr=(1 3 6 8 2 5 9 0 7 4)
// 默认获取第一个元素
$ echo $arr
// 通过下标访问,下面取的数组第二个元素,shell数组下标是从0开始
$ echo ${arr[1]}   
// 访问整个数组
$ echo ${arr[@]}  or echo ${arr[*]}
// 获取数组的长度(最大下标)
$ echo ${#arr[@]}
 // 获取单个元素字符串长度
$ echo ${#arr[3]}
 // 切片方式获取一部分数组内容 
$ echo ${arr[@]:1:2}
// 从第二个元素开始
$ echo ${arr[@]:2} 
// 到第二个元素
$ echo ${arr[@]::2}


shell 实现冒泡排序:


代码如下:

#!/bin/sh
#sorting following array
echo "please input a number list:"
read -a arr
for (( i=0 ; i<${#arr[@]} ; i++ ))
do
  for (( j=${#arr[@]} - 1 ; j>i ; j-- ))
  do
    #echo $j
    if  [[ ${arr[j]} -lt ${arr[j-1]} ]]
    then
       t=${arr[j]}
       arr[j]=${arr[j-1]}
       arr[j-1]=$t
    fi
  done
done
echo "after sorting:"
echo ${arr[@]}
[tech@ebs sqlee]$ ./sorting.sh
please inout a number list:
0 2 9 6 8 5 7 4 3 1
after sorting:
0 1 2 3 4 5 6 7 8 9

(0)

相关推荐

  • shell数组操作简明总结

    数组作为一种特殊的数据结构在任何一种编程语言中都有它的一席之地,当然bash shell也不例外.本文就shell数组来做一个小的总结. 在这里只讨论一维数组的情况,关于多维数组(事实上,你得用一维数组的方法来模拟),不涉及.这里包括数组的复制,计算,删除,替换. 1.数组的声明: 复制代码 代码如下: 1)array[key]=value # array[0]=one,array[1]=two2)declare -a array # array被当作数组名3)array=( value1 va

  • shell中的数组操作小结和冒泡排序实现脚本分享

    shell数组介绍: 复制代码 代码如下: //数组变量定义: $ arr=(1 3 6 8 2 5 9 0 7 4) // 默认获取第一个元素 $ echo $arr // 通过下标访问,下面取的数组第二个元素,shell数组下标是从0开始 $ echo ${arr[1]}    // 访问整个数组 $ echo ${arr[@]}  or echo ${arr[*]} // 获取数组的长度(最大下标) $ echo ${#arr[@]}  // 获取单个元素字符串长度 $ echo ${#a

  • 详解shell中source、sh、bash、./执行脚本的区别

    1.source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令.该filename文件可以无"执行权限" 注:该命令通常用命令"."来替代. 如:source .bash_profile . .bash_profile两者等效. source(或点)命令通常用于重新执行刚修改的初始化文档. source命令(从 C Shell 而来)是bash shell的内置命令. 点命令,就是个点符号,(从Bourne

  • Shell脚本数组操作小结

    Linux Shell在编程方面比Windows批处理强大很多,无论是在循环.运算. bash支持一维数组(不支持多维数组),并且没有限定数组的大小.类似与C语言,数组元素的下标由0开始编号.获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0. 定义数组 在Shell中,用括号来表示数组,数组元素用"空格"符号分割开.定义数组的一般形式为: 复制代码 代码如下: 数组名=(值1 值2 ... 值n) 例如: 复制代码 代码如下: array_name=(valu

  • JavaScript中的数组操作介绍

    JavaScript中的数组对象自带了一些方法,可以通过使用这些方法来对数组进行操作. join() 可以使用join()方法将数组中的成员合并到一个字符串中: 复制代码 代码如下: var o = [1,2,3]; console.log(o.join());//1,2,3 console.log(o.join(" "));//1 2 3 var emptyArray = new Array(10); console.log(emptyArray.join("-"

  • Erlang中的基本元素操作小结

    Erlang shell中,用句号加空格.tab或回车来结束表达式,%表示注释的起点,;隔离子句.模块是.erl 文件,库的头文件.hrl, shell中的编译时c(),外编译命令时erlc, 退出shell用q(),或erlang:halt(). 变量以大写字母开头,且不能重新绑定变量,只能一次性赋值,具有不可变状态.原子是全局的,不需要宏定义或包含文件,以小写字母开头,还可放在单引号内,是极简表达式.   元组(tuple)是一些数量固定的项目归组成单一实体{,}, 由于是匿名的,通常在第一

  • php中的数组操作函数整理

    Array([key =>] value, [key =>] value, [key =>] value, [key =>] value) // key 可以是 integer 或者 string // value 可以是任何值 array_change_key_case -- 返回字符串键名全为小写或大写的数组 array_chunk -- 将一个数组分割成多个 array_combine -- 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值 array_coun

  • MongoDB在PHP中的常用操作小结

    $mongodb = new Mongo(); //$connection = new Mongo( "$dburl:$port" ); // connect to a remote host (default port) $mydb = $mongodb->mydb;  //隐性创建数据库mydb $mydb = $mongodb->selectDB("mydb");  //直接选择已经存在的数据库 $collection = $mydb->my

  • Shell中的变量使用小结

    变量的定义,只能以字母和下划线开始,区分大小写,可以包含数字 字母下划线.详见官方手册 复制代码 代码如下: [root@svn shell_example]# yourname='Linux' [root@svn shell_example]# echo $yourname Linux [root@svn shell_example]# YourName="linux" [root@svn shell_example]# echo "The variable is $You

  • shell中使用expect命令进行远程执行命令脚本

    expect是用来实现自动交互功能的工具之一,使用expect-send来实现交互过程. 注意: 1.脚本的执行方法与bash shell不一样,比如:expect example.sh 2.向一个脚本传递参数时,bash shell是使用$1,$2...来接收参数的:而expect则将脚本的执行参数保存在数组$argv中,在脚本中一般将其赋值给变量:set 变量名 [lindex $argv 参数] #!/usr/bin/expect set ip [lindex $argv 0] set p

  • Shell中调用、引用、包含另一个脚本文件的三种方法

    脚本 first (测试示例1) first#!/bin/bashecho 'your are in first file' 方法一:使用source #!/bin/bashecho 'your are in second file'source first 方法二:使用. #!/bin/bashecho 'your are in second file'. first 方法三:使用sh#!/bin/bashecho 'your are in second file'sh  first

随机推荐