数组的使用及简单练习
程序员文章站
2024-02-08 14:33:40
...
一、声明
普通数组:declare -a ARRAY (不必须声明,可直接使用)
关联数组:declare -A ARRAY(必须声明后才可使用)
二者不可相互转化
二、赋值
1、一次赋值一个元素
a[0]=‘abc’
a[1]='123
2、一次赋值全部元素
a=(“a” “b” “c”…)
a=({1…10})
a=(*.sh)
3、只赋值特定元素
a=([0]=“a” [3]=“c”)
4、交互式赋值
read -a ARRAY (用空格隔开)
三、显示所有数组
declare -a
四、引用
${ARRAY[n]} (若不指定下表,则为ARRAY[0])
${ARRAY[|@]} (显示所有)
${#ARRAY[]}(数组的个数)
五、删除
删除单个:
unset ARRAY[n]
删除整个:
unset ARRAY
六、处理
跳过前n个,取后面m个
${ARRAY[*]:n:m}
例如:跳过前两个,取后面所有
echo ${ARRAY[*]:2}
七、追加
ARRAY[${#ARRAY[*]}]=value
八、关联数组(必须先声明)
**好处:**下标可自定义
declare -A name
name[ceo]=li
name[cto]=zhang
name[coo]=wang
九、小练习
1、求10个随机数的数组中,最大与最小值
①、非简化版(自己写的)
#!/bin/bash
n[0]=$RANDOM
max=${n[0]=$RANDOM}
min=${n[0]=$RANDOM}
for i in {1..9};do
n[i]=$RANDOM
if [ ${n[i]} -gt $max ];then
max=${n[i]}
elif [ ${n[i]} -lt $min ];then
min=${n[i]}
fi
done
echo ${n[*]}
echo $max
echo $min
②、简化版
#!/bin/bash
for i in {0..9};do
n[i]=$RANDOM
[ $i -eq 0 ] && max=${n} && min=${n} && continue
[ ${n[i]} -gt $max ] && max=${n[i]}
[ ${n[i]} -lt $min ] && min=${n[i]}
done
echo ${n[*]}
echo $max
echo $min
②、求当前目录下所有偶下标的行数和
#!/bin/bash
line=0
num=(/data/*)
for i in $(seq 0 $[${#num[*]}-1]);do
if [ $[$i%2] -eq 0 ];then
let line+=$(wc -l ${num[i]}|cut -d' ' -f1)
fi
done
echo "line:$line"
推荐阅读
-
数组的使用及简单练习
-
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
-
ws-http.java 给女生使用的简单无依赖的HTTP Client库 javahttp
-
ws-http.java 给女生使用的简单无依赖的HTTP Client库 javahttp
-
Laravel OAuth2 第三方登陆(包括 Laravel 中 Facades 和 Service 的简单使用)
-
四种php中webservice实现的简单架构方法及实例
-
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比_PHP
-
mysql中find_in_set()函数的使用及in()用法详解
-
joomla 组件的安装及使用,该怎么处理
-
使用Qt 编写一个简单的串口助手