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-------数组遍历、切片、替换等操作


相关文章
|
1天前
|
Shell
蓝易云 - 简单shell脚本的编写教程
以上就是编写一个基本Shell脚本的步骤。当然,Shell脚本可以做的远不止这些,你可以使用变量,控制结构(如if语句和循环),以及各种Shell命令和功能来编写更复杂的脚本。
10 1
|
13天前
|
监控 Shell Linux
Linux的Shell脚本详解
Linux的Shell脚本详解
|
17天前
|
Shell
shell脚本
shell脚本
18 2
|
2天前
|
Shell 调度
Shell脚本中的if条件判断语句
Shell脚本中的if条件判断语句
|
2天前
|
Shell
蓝易云 - 简单shell脚本的编写教程
以上就是编写一个基本Shell脚本的步骤。当然,Shell脚本可以做的远不止这些,你可以使用变量,控制结构(如if语句和循环),以及各种Shell命令和功能来编写更复杂的脚本。
4 0
|
25天前
|
Ubuntu Java Linux
Linux centos7 ubuntu 一键安装Java JDK 脚本 shell 脚本
Linux centos7 ubuntu 一键安装Java JDK 脚本 shell 脚本
35 2
|
3天前
|
机器学习/深度学习 Unix Java
技术笔记:Linux之Shell脚本编程(一)
技术笔记:Linux之Shell脚本编程(一)
|
25天前
|
Shell Linux
shell linux中shell脚本编写俄罗斯方块
shell linux中shell脚本编写俄罗斯方块
21 1
|
26天前
|
Shell Linux Perl
Linux shell脚本sed使用
Linux shell脚本sed使用
16 1
|
6天前
|
Shell
Shell脚本之条件语句if总结
Shell脚本之条件语句if总结