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编程之数组的主要内容,如果未能解决你的问题,请参考以下文章