当前位置:首页 > 技术文章 > 正文内容

Linux,shell,数组,declare关联数组,二维数组,代码案例

douba323小时前技术文章3

Shell数组

案例代码

#!/bin/bash

# 定义数据
array1=()
# 给数组赋值
array1[0]="林黛玉"
array1[1]="薛宝钗"
array1[2]="贾元春"
# 数组
echo "数组下标为0的元素:${arrar1[0]}"
echo "数组最后一个元素:${array1[-1]}"
echo "数组中所有的元素:${array1[@]}"
echo "数组中所有的元素:${array1[*]}"
echo "数组的长度:${#array1[*]}"
echo "数组所有下标:${!array1[*]}"
# 遍历数组
for item in ${array1[@]}
do
  echo "1.数组内容:${item}"
done
# 修改数组下标为0的元素
echo "修改数组下标为0的元素"
array1[0]="贾宝玉"
# 遍历数组
for ((i=0;i<${#array1[*]};i++))
do
  echo "2.数组内容:"${array1[$i]}
done
# 删除数组下标为1的元素
echo "删除数组下标为1的元素"
unset array1[1]
# 遍历数组
for item in ${array1[*]}
do
  echo "3.数组内容:${item}"
done
# 数组中的下标为:0 2
echo "数组所有下标:${!array1[*]}"

# 定义数组
array2=(张天师 洪太尉 高俅 王进)
for item in ${array2[*]}
do
  echo "====>$item"
done

# 逗号分割为数组
str="史进,朱武,陈达,杨春"
echo "str=${str//,/ }"
array3=(${str//,/ })
for item in ${array3[@]}
do
  echo "$item"
done

Shell的declare关联数组

案例代码

#!/bin/bash

# declare关联数组
declare -A array1
array1["one"]="三国演义"
array1["two"]="水浒传"
array1["three"]="西游记"
array1["four"]="红楼梦"
echo "key为one的值:${array1[one]}"
echo "key为two的值:${array1[two]}"
echo "key为three的值:${array1[three]}"
echo "数组的所有下标:${!array1[*]}"
echo "数组的长度:${#array1[*]}"
echo "数组的内容:${array1[*]}"
echo "数组的内容:${array1[@]}"
echo "删除下标为four的元素"
unset array1["four"]

# declare关联数组
declare -A array2
array2=(["one"]="三国演义" ["two"]="水浒传" ["three"]="西游记" ["four"]="红楼梦")
echo "数组的所有下标:${!array2[*]}"
echo "数组的长度:${#array2[*]}"
echo "数组的内容:${array2[*]}"
echo "数组的内容:${array2[@]}"
echo "key为one的值:${array2[one]}"
echo "key为two的值:${array2[two]}"
echo "key为three的值:${array2[three]}"
echo "key为four的值:${array2[four]}"

# 关联数组的遍历
keys=${!array2[*]}
for key in ${keys[@]}
do
  echo "----key=$key,value=${array2[$key]}"
done

Shell二维数组

案例代码

#!/bin/bash

series=(xiyou shuihu)
xiyou=("唐僧" "孙悟空" "猪八戒" "沙僧")
shuihu=("宋江" "卢俊义" "吴用" "公孙胜")

# 遍历
for item in ${series[@]}
do
  echo "----${item}"
  array=$item[@]
  arrayContent=(${!array})
  for e in ${arrayContent[@]}
  do
    echo "--------${e}"
  done
done

echo "------------------------------------------------"

# 遍历
for item in ${series[@]}
do
  echo "----${item}"
  array=$item[@]
  arrayContent=(${!array})
  arrayLength=${#arrayContent[@]}
  echo "----长度为:$arrayLength"
  for (( i=0;i<$arrayLength;i++))
  do
    echo "--------${arrayContent[$i]}"
  done
done

相关文章

强烈推荐20个Linux find查找指令(linux中用find查找目录)

1. 按文件名搜索所有.log文件find /var/log -name "*.log"2. 忽略大小写搜索.txt文件find /home -iname "*.TXT"...

如何查询 Linux 中 CPU 的数量?这几个命令要知道!

在深入命令之前,先聊聊为什么要关心 CPU 数量。想象一下,你是个系统管理员,手底下管着几十台服务器,突然有台机器跑任务慢得像乌龟,你得搞清楚是不是 CPU 不够用。或者你是程序员,想写个多线程程序,...

Linux 文件搜索神器 find 实战详解,建议收藏

在 Linux 系统使用中,作为一个管理员,我希望能查找系统中所有的大小超过 200M 文件,查看近 7 天系统中哪些文件被修改过,找出所有子目录中的可执行文件,这些任务需求 find 命令都可以轻松...

如何检查 Linux 系统是 32 位还是 64 位?这9个命令查的又快又准!

在 Linux 系统中,位数(bit)通常指的是 CPU 架构的位宽,即 CPU 一次能够处理的数据量。32 位系统和 64 位系统在内存寻址能力、计算性能和软件支持上存在显著差异:「32 位系统」:...

为解决卡顿,Linux禁用所有AMD处理器fTPM上的随机数生成器

IT之家 8 月 8 日消息,最近,AMD 的 fTPM 随机数生成器(RNG)出现了一个卡顿问题,最初影响了 Windows 用户,但后来也影响到了 Linux。Linux 之父 Linus Tor...

Linux基本命令(Linux基本命令聪简单到复杂)

一、基本命令1. pwdxx@admin1, 中xx表示用户登录的名字,admin1表示主机名, test表示当前工作目录,pwd (present working directory): 查看当前...