沙滩星空的博客沙滩星空的博客

shell数组的概念和使用方法

定义

用括号 ( ) 来表示数组,数组元素之间用 空格 来分隔。

  • 赋值号 = 两边不能有空格
  • 常用的 Bash Shell 只支持一维数组,不支持多维数组
  • Shell 的数组是弱类型的,不要求所有数组元素的类型必须相同
  • Shell 数组元素的下标也是从 0 开始计数。

示例

#!/bin/bash

tarray=(1 3 5 B C "D")

for ele in ${tarray[@]}
do
echo $ele
done

echo ${tarray[*]}
echo 数组长度为: ${#tarray[*]}

for ((i=0; i<${#tarray[@]}; i++)) do
echo index${i} is ${tarray[i]}
done

使用

  • 获取数组值:n=${nums[3]}
  • 使用 *@ 获取所有元素: echo ${nums[*]}echo ${nums[@]}
  • 使用 # 获取数组长度:echo ${#array_name[@]}echo ${#array_name[*]}, strr="123456" && echo ${#strr}
  • 使用 unset 删除数组元素,数组长度会变小:unset nums[1]
  • 数组合并:array_new=(${array1[@]} ${array2[@]})array_new=(${array1[*]} ${array2[*]})
#!/bin/bash

arr=(23 56 99 "http://www.hello.com/")
# 删除了 56 这个元素
unset arr[1]
echo ${arr[@]}

# 删除了整个 arr数组,数组长度为0
unset arr
# 输出0
echo ${#arr[*]}
# 输出空行
echo ${arr[*]}

for循环

for 循环必须加双括号。

#!/bin/bash

for ((i=0; i<${#tarray[@]}; i++))
do
echo index${i} is ${tarray[i]}
done

for str in "zhangsan" "lisi" "wangwu"
do
    echo $str
done

for ((i=0;i<=5;i++)) do
    echo $i
done

Shell数组:Shell数组定义以及获取数组元素 https://c.biancheng.net/view/810.html
未经允许不得转载:沙滩星空的博客 » shell数组的概念和使用方法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址