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

示例

# 定义数组,等号两边不要有空格
list=("A""B"
)# 数组长度
echo ${#list[@]} # 2# 获取数组元素
echo ${list[1]} # B# 输出所有值
echo ${list[@]} # A B# 循环打印数组
for var in ${list[@]}; doecho "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 2echo ${arr[*]:1:3}
# 2 3 4echo ${arr[@]:1}
# 2 3 4 5

示例

字符串解析

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

运行示例

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

参考
Shell脚本list史上最全教程
shell-------数组遍历、切片、替换等操作


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部