shell:脚本数组list定义、长度获取、循环打印、数组切片、字符串转换

简介: shell:脚本数组list定义、长度获取、循环打印、数组切片、字符串转换

示例

# 定义数组,等号两边不要有空格
list=(
    "A"
    "B"
)
# 数组长度
echo ${#list[@]} # 2
# 获取数组元素
echo ${list[1]} # B
# 输出所有值
echo ${list[@]} # A B
# 循环打印数组
for var in ${list[@]}; do
    echo "var = ${var}"
done
# 输出:
# var = A
# var = B

字符串转数组

方式一

# 字符串转数组
str="A B C"
arr=($str) 
# 数组长度
echo ${#arr[@]} # 3
# 所有数组元素
echo ${arr[@]}
# A B C

方式二

# 字符串转数组
str="A,B,C"
arr=(`echo $str | tr ',' ' '`) 
# 数组长度
echo ${#arr[@]} # 3
# 所有数组元素
echo ${arr[@]}
# A B C

列表切片

arr=(1 2 3 4 5)
# 输出整个数组
echo ${arr[@]}       
# 1 2 3 4 5
# 获取${ 数组名[@或*] :起始位置:长度}的值
echo ${arr[@]:0:2}   
# 1 2
echo ${arr[*]:1:3}
# 2 3 4
echo ${arr[@]:1}
# 2 3 4 5

示例

字符串解析

# demo.sh
arg=$1
# 拆分字符串参数为数组 
# python@3.7.0 => ('python' '3.7.0')
arr=(`echo $arg | tr '@' ' '`)
# 如果数组长度为2,则取第二个参数为版本号
if [ ${#arr[@]} -eq 2 ]; then
    name=${arr[0]}
    version=${arr[1]}
else
    name=$arg
    version=''
fi
echo $name
echo $version

运行示例

$ bash demo.sh python
python
$ bash demo.sh python@3.7.0
python
3.7.0

参考

Shell脚本list史上最全教程

shell-------数组遍历、切片、替换等操作


相关文章
|
3月前
|
存储 Shell
Shell 数组
【10月更文挑战第16天】
42 3
|
5月前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
|
3月前
|
Shell PHP 索引
Shell 数组
10月更文挑战第2天
30 1
|
3月前
|
JSON 前端开发 JavaScript
json字符串如何转为list对象?
json字符串如何转为list对象?
446 7
|
5月前
|
Shell KVM 虚拟化
Shell 数组编程
【8月更文挑战第22天】 Shell 数组编程
57 10
|
6月前
|
Shell 测试技术 Linux
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
85 3
|
5月前
|
BI
【Azure Power BI】Power BI获取SharePoint List列表后,如何展开List/Table中的字段,以及使用逗号拼接为一个字符串
【Azure Power BI】Power BI获取SharePoint List列表后,如何展开List/Table中的字段,以及使用逗号拼接为一个字符串
|
3月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
127 1
|
2月前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
74 2
6种方法打造出色的Shell脚本
|
2月前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
79 1