shell中的数组操作小结和冒泡排序实现脚本分享_linux 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

时间: 2024-10-25 07:37:15

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

shell实现自动adsl拨号并检测连接状况脚本分享_linux shell

今天公司同事要我整个adsl自动重拨的shell,并检测是否连上了,这样才能保证内部测试服务器不掉网,好吧,下面我把脚本发出来. 系统:centos 5.x 脚本1: 复制代码 代码如下: cat /root/soft_shell/auto_adsl_1.sh #!/bin/bash gateway=`ifconfig ppp0 |grep P-t-P| cut -f 3 -d ":"|cut -f 1 -d " "` inter=`ifconfig |grep p

Shell中的函数、函数定义、作用域问题介绍_linux shell

说起函数调用,相信大家也不会陌生,然而对于初学Shell的我来说,Shell中函数调用方式却有点让我不太习惯,自己也走了不少的弯路,因为传递参数时出了一个很"自然"的错误,也让我吃了不少的苦头,所以总结一下Shell中函数的调用方法. 一.Shell中函数的定义 为了方便程序和管理和模块化并减少代码的重复,函数的确是一个好东西.而Shell中函数的定义有两种方法,如下: 复制代码 代码如下: function fname() {     statements: } 或 复制代码 代码如

Linux服务器硬件运行状态及故障邮件提醒的监控脚本分享_linux shell

监控硬件运行状况 shell 监控cpu,memory,load average,记录到log,当负载压力时,发电邮通知管理员. 原理: 1.获取cpu,memory,load average的数值 2.判断数值是否超过自定义的范围,例如(CPU>90%,Memory<10%,load average>2) 3.如数值超过范围,发送电邮通知管理员.发送有时间间隔,每小时只会发送一次. 4.将数值写入log. 5.设置crontab 每30秒运行一次. ServerMonitor.sh #

一天一个shell命令 linux文本操作系列-head,tail命令详解_linux shell

head命令中文介绍: 用法:head [选项]... [文件]... 将每个指定文件的头10 行显示到标准输出. 如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头. 如果不指定文件,或者文件为"-",则从标准输入读取数据. 长选项必须使用的参数对于短选项时也是必需使用的. -c, --bytes=[-]K 显示每个文件的前K 字节内容: 如果附加"-"参数,则除了每个文件的最后K字节数据外 显示剩余全部内容 -n, --lines=[-]K 显示每个文

一天一个shell命令 linux文本操作系列-tac,rev命令详解_linux shell

说明: tac和rev没有必然联系,唯一相同的是,他们是"反派".tac其实是cat的反写,cat正常输出,那tac就倒着输出,不过从行的最后一行输出,那rev呢?rev是每行的最后一个字母到第一个字母倒序输出. 简单实例 tac命令 文件过滤分割与合并 tac命令用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示. 语法 tac(选项)(参数) 选项 -a或--append:将内容追加到文件的末尾: -i或--ignore-interrupts:忽略中断信号. 参数 文

centos中mysql备份数据库脚本分享_linux shell

复制代码 代码如下: #!/bin/bash#backup mysql data DBDIR=/data/mysqlBACKDIR=/data/bak/mysqlTIME=`date -d "today" +%F`DB=$(ls -p $DBDIR | grep / |tr -d / | grep -Ev 'information_schema|performance_schema|mysql|test')/etc/init.d/mysqld stopif [ -d $BACKDIR

Shell脚本制作的终端会话回放功能脚本分享_linux shell

不久前在书上看到两个很有趣的命令--script和srciptreplay,它可以把终端会话记录到一个文件中,即是说我们可以通过终端会话来来制作命令行技巧视频教程,也可以与他人分享会话文件,而且生成的文件还只是一般的文本文件,文件的大小非常小,真是非常有意思.下面是本人写的两个shell程序,来方便进行这个有趣并有意义的操作. 一.实现代码 文件:Record.sh 复制代码 代码如下: #! /bin/bash  # Filename:Record.sh    read -p "Please

8个实用的Shell脚本分享_linux shell

几个Shell脚本的例子,觉得还不错. [例子:001]判断输入为数字,字符或其他 复制代码 代码如下: #!/bin/bash  read -p "Enter a number or string here:" input    case $input in     [0-9]) echo -e "Good job, Your input is a numberic! \n" ;;  [a-zA-Z]) echo -e "Good job, Your i

Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享_linux shell

环境: ssh server: 192.168.100.29  server.example.com ssh client: 192.168.100.30  client.example.com 通过root用户建立秘钥认证实现SHELL脚本管理,分发,部署 首先client端创建秘钥对,并将公钥分发给需要登录的SSH服务端 注:公钥相当于锁,私钥相当于钥匙,我们这里相当于在客户端创建一对钥匙和锁,想要做到SSH免密码登录,就相当于我们将锁分发到服务端并装锁,然后客户端就可以利用钥匙开锁. 一.