shell 数组

2020-03-06  本文已影响0人  衣介书生

数组

定义,新增,修改,删除,遍历,取值,长度,连接

#!/bin/bash
 
########################################
# 定义
########################################
# 方式 1
 declare -a names_a
 names_a[0]=Tom
 names_a[1]=Jack
 names_a[2]=Jerry

# 方式 2
declare -a names_b=(Tom Jack)
names_b[2]=Jerry

# 方式 3
names_c=(Tom Jack Jerry)

########################################
# 新增或修改
########################################
names_c[2]=Pett  # 数组没有对应的下标索引,则为新增
names_c[3]=Mary  # 数组有对应的下标索引,则为修改

########################################
# 取值
########################################
echo ${names_a[0]}  # Tom
echo ${names_a[1]}  # Jack
echo ${names_a[2]}  # Jerry
echo ${names_a[@]}  # Tom Jack Jerry
echo ${names_a[*]}  # Tom Jack Jerry
echo ${names_a}  # Tom,等价于 echo ${names_a[0]}

########################################
# 长度
########################################
echo ${#names_a[@]}  # 3
echo ${#names_a[*]}  # 3

########################################
# 遍历
########################################
echo "for loop names_a"
for name in ${names_a[@]}
do
   echo $name
done

echo "for loop names_b"
for name in ${names_b[*]}
do
   echo $name
done

echo "for loop names_c"  # 带索引的遍历
for idx in ${!names_c[@]}
do
   echo "${idx}: ${names_c[$idx]}"
done

########################################
# 删除
########################################
unset names_a[0]  # 删除数组指定索引位置的元素
echo ${names_a[@]}
unset names_a  # 删除数组
echo ${names_a[@]}

########################################
# 连接
########################################
names_d=(${names_b[@]} ${names_c[@]})
echo ${#names_d[@]}
echo ${names_d[@]}
上一篇 下一篇

猜你喜欢

热点阅读