shell bash---类似数组类型

0 Preface/Foreword

C/C++,Python,Java等编程语言,都含有数组类型,那么shell脚本是不是也有类似的语法呢?

1 类似数组类型

1.1 ()类似数组类型

bash 复制代码
#! /bin/bash

echo "Welcome to bash world!"
animals=('cat' 'dog' 'horse' 'mouse')
#get a specified element
echo ${animals[0]}

#list all elements
echo ${animals[*]}
#list all elements
echo ${animals[@]}
#get the lenght of array
echo ${#animals[@]}
echo ${#animals[*]}

echo =================================
echo $#
echo $*
echo $@

echo ================================
echo $0
echo $1
echo $2
echo $?
echo =================================
echo $$
echo $!

++运行结果如下所示++:

分析:animals变量

  • 是一个数组类型,通过()来表示
  • 里面的元素只能是字符串
  • 字符串自己用空格分隔

1.1.1 获取数组中元素

通过下标index获取。

  • 第一个元素从++下标0开始++。
  • index越界了,不会报错,只是该变量为空。
  • 如果下标为空,则会报错。(bad substitution

1.1.2 获取数组元素列表

${arrayName[*]}

或者

${arrayName[@]}

1.1.3 获取数组长度

${**#**arrayName[@]}

或者

${**#**arrayName[*]}

1.2 遍历数组(for循环)

bash 复制代码
#! /bin/bash

echo "Welcome to bash world!"
animals=('cat' 'dog' 'horse' 'mouse')

echo "retrieve an array..."
count=0
for i in ${animals[*]}
do
	let count+=1
	echo "count is:"$count
done

运行结果:

相关推荐
致奋斗的我们6 小时前
Nginx反向代理及负载均衡
linux·运维·mysql·nginx·负载均衡·shell·openeluer
龙哥·三年风水10 天前
shell+kafka实现服务器健康数据搜集
运维·kafka·shell
致奋斗的我们12 天前
MySQL主从同步
linux·数据库·mysql·adb·青少年编程·shell·openeluer
Ops菜鸟(Xu JieHao)13 天前
Linux firewalld开启日志审计功能(2)
linux·运维·shell·脚本·日志·防火墙·firewalld
致奋斗的我们14 天前
rsync增量同步
linux·运维·服务器·网络·shell·rsync·openeurler
三天不学习17 天前
Linux+Docer 容器化部署之 Shell 语法入门篇 【Shell 替代】
linux·运维·服务器·shell
程序猿编码19 天前
自定义命令执行器:C++中命令封装的深度探索(C/C++实现)
linux·c语言·c++·网络安全·shell·命令行
vortex519 天前
Shell基础:中括号的使用
linux·运维·bash·shell
飞火流星020271 个月前
Linux shell 批量验证端口连通性
linux·服务器·shell·批量验证端口连通性·网络端口连通性
江无行者1 个月前
Windows 环境变量:通过 CMD 和 PowerShell 写入环境变量
shell