bash编程系列之数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bash编程系列之数组相关的知识,希望对你有一定的参考价值。
array数组:
如何声明一个数组
declare -a AA
赋值方法1:
AA[0]=jerry
AA[1]=tom
AA[2]=wendy
AA[6]natasha
之间默认为null
赋值方法2:
AA=(jerry tom wendy)
AA=([0=]jerry [1]=tom [2]=wendy [6]=natasha)
AA[3]=selina
AA[4]=nikita
实验:
[[email protected] scripts]# vim testarray.sh
#!/bin/bash
#
AA=([0]=jerry [1]=tom [6]=nikita)
echo ${AA[1]}
echo ${AA[2]}
echo ${AA[6]}
[[email protected] scripts]# bash testarray.sh
tom
nikita
[[email protected] scripts]#
随机选一个0-6之间的值
[[email protected] scripts]# vim testarray.sh
#!/bin/bash
#
AA=([0]=jerry [1]=tom [6]=nikita)
INDEX=$[$RANDOM%7] 随机选一个
echo ${AA[$INDEX]}
----------------------------------
随机20次:
#!/bin/bash
#
AA=([0]=jerry [1]=tom [6]=nikita)
for I in {1..20};do
INDEX=$[$RANDOM%7]
echo ${AA[$INDEX]}
I+=1
done
-----------------------------------
#!/bin/bash
#
AA=([0]=jerry [1]=tom [6]=nikita)
echo ${#AA[0]} 表示显示最前面的元素长度
[email protected] scripts]# bash testarray.sh
5
------------------------------------------
#!/bin/bash
#
AA=([0]=jerry [1]=tom [6]=nikita)
echo ${#AA[@]} @或者*表示引用元素个数(值不为空的个数)
[[email protected] scripts]# bash testarray.sh
3
----------------------------------
1.写一个脚本找出数据中的最大数。这组数据用数据保存
#!/bin/bash
#
AA=(1 2 3 4 5 6 7111 8 9 101)
declare -i MAX=${AA[0]}
SS=$[${#AA[@]}-1]
for I in `seq 1 $SS` ;do
if [ $MAX -lt ${AA[$I]} ];then
MAX=${AA[$I]}
fi
done
echo $MAX
---------------------------------------
随机生成10个元素的组,然后找出最大数
#!/bin/bash
#
for I in {0..9};do
AA[$I]=$RANDOM
echo -n "${AA[$I]} "
done
echo
declare -i MAX=${AA[0]}
SS=$[${#AA[@]}-1]
for I in `seq 1 $SS` ;do
if [ $MAX -lt ${AA[$I]} ];then
MAX=${AA[$I]}
fi
done
echo $MAX
--------------------------------------
生成一个数组:
1.数组的元素个数为1-39
2.数组的元素不能相同
3.显示此数组各元素的值
#!/bin/bash
read -p "The element numbers[1-39]: " ELENUM
declare -a ARRAY #将ARRAY定义为数组
function COMELE {
for J in `seq 0 $[${#ARRAY[@]}-1]`;do
if [ $1 -eq ${ARRAY[$J]} ];then
return 1
fi
done
return 0
}
for I in `seq 0 $[$ELENUM-1]`; do
while true ;do #while true 死循环
ELEMENT=$RANDOM
COMELE $RANDOM
if [ $? -eq 0 ];then
break
fi
done
ARRAY[$I]=$ELEMENT
echo "${ARRAY[$I]}"
done
---------------------------------------------
trap:在脚本中捕捉特定信号,并且可以特定处理
1:SIGHUP
2:SIGINT
9:SIGKILL
15:SIGTERM
18:SIGCONT
19:SIGSTOP
trap ‘echo "NO quit..."‘ INT
可以定义函数来实现。当用处执行Ctrl+C撤销的时候。把之前创建的文件删除。
#!/bin/bash
#
function DEL {
rm -rf /var/tmp/test
exit
}
trap ‘DEL‘ INT
mkdir -p /var/tmp/test
while true ;do
touch /var/tmp/test/file-`date +%F-%H-%M-%S`
sleep 2
done
-------------------------------
本文出自 “运维成长路” 博客,谢绝转载!
以上是关于bash编程系列之数组的主要内容,如果未能解决你的问题,请参考以下文章