11bash编程之数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11bash编程之数组相关的知识,希望对你有一定的参考价值。

bash编程:
数组初步
数组:数据结构,
技术分享图片

数组是一个序列(当我需要连续存储大量数据时)

声明数组:declare -a arrayName(数组也是可以直接拿来用,也可以不需要定义)
初始化或赋值:各元素间使用空白字符分隔
第一种:arrayName=(‘a‘ ‘b‘ ‘c‘)
[[email protected] ~]# color=(‘red‘ ‘green‘ ‘blue‘)
[[email protected] ~]# echo ${color[0]}
red
[[email protected] ~]# echo ${color[1]}
green
默认情况下,就是指向第一个元素的了,需要引用位置的变量,就需要加中括号去寻找
第二种:arrayName=([index]=‘a‘ [index]=‘b‘)
[[email protected] ~]# color=(‘red‘ ‘green‘ [4]=‘blue‘)
[[email protected] ~]# echo ${color[4]}
blue
第三种:arrayName[0]=‘a‘; arrayName[1]=‘b‘

获取数组中有效元素的个数:
${#arrayName[@]}, ${#arrayName[*]}
获取某一元素中字符串的长度:
${#arryName[index]} (index=0,1,2...)
[[email protected] ~]# color=(‘red‘ ‘green‘ [4]=‘blue‘)
[[email protected] ~]# echo ${color[4]}
blue
[[email protected] ~]# echo ${#color[4]}
4
[[email protected] ~]# color=(‘red‘ ‘green‘ [4]=‘bluesadfasdf‘)
[[email protected] ~]# echo ${#color[4]}
12

bash伪随机数生成器:$RANDOM
练习:从所有同学们中随机任意位;
练习:通过脚本生成N个随机数(N>5),对这些随机数按从小到大排序;
#/bin/bash
declare i NUM=0
echo -e " The orinal Numberis :"
for I in seq 0 5;do
Maopao[$I]=$RANDOM
echo -e "\033[32m${Maopao[$I]}\033[0m"
done
for I in seq 0 5;do
for J in seq 0 5;do
[ ! $J -ge $I ] && continue
if [ ${Maopao[$J]} -gt ${Maopao[$I]} ];then
NUM=${Maopao[$J]}
Maopao[$J]=${Maopao[$I]}
Maopao[$I]=$NUM
fi
done
done
echo -e " Biger to smaill is :"
for I in seq 0 5;do
echo -e "\033[32m${Maopao[$I]}\033[0m"
done
冒泡排序;
练习:打印九九乘法表
总结:sed awk array $RANDOM
#!/bin/bash
Yunwei=(‘李彬文‘ ‘麦惠道‘ ‘曾小华‘ ‘李明浩‘ ‘宴彪‘ ‘吴志勇‘ ‘周吴波‘ ‘韦欢‘)
pick=$RANDOM%8
echo -e "\033[32mLuckly Boy:${Yunwei[$pick]}\033[0m"
我们讲的第一个服务是openssl,接着讲一些就是dns,还有就是httpd后续都会讲解了

[[email protected] ~]# Database=(linan agent creditstandard)
[[email protected] ~]# echo ${Database[@]} :列出该数组所有元素
linan agent creditstandard
[[email protected] ~]# echo ${#Database[@]} :获取该数组的元素总个数
3
[[email protected] ~]#

以上是关于11bash编程之数组的主要内容,如果未能解决你的问题,请参考以下文章

Bash编程之数组和字符串处理

16bash编程之数组介绍

Shell编程之数组使用

linux下Bash编程之数组Array详解

bash编程系列之数组

bash脚本编程之数组及随机变量