shell脚本字符串和数组的使用方法

树叶云

本篇文章重点为大家讲解一下shell脚本字符串和数组的使用方法,有需要的小伙伴可以参考一下。

字符串

可以使用单引号和双引号定义字符串变量但是单引号中不支持变量解析

#! /bin/bash
username="mayuan"
str_1="hello ${username}"
str_2='hello ${username}'echo $str_1 # hello mayuanecho $str_2 # hello ${username}

获取字符串的长度

#! /bin/bash
username="mayuan"echo ${#username} # 6

截取字符串

#! /bin/bash
username="mayuan"echo ${username:1:3} # 从第二个字符开始截取3个字符输出"ayu"

查找指定字符

#! /bin/bash
username="mayuan"echo $(expr index "${username}" y) #查找y在指定字符的位置

数组

#! /bin/bash
arr=(1 2 3 4 5)
echo ${arr[0]} #输出1echo ${arr[1]} #输出2

获取数组长度

#! /bin/bash
arr=(1 2 3 4 5)
echo ${#arr[@]} #输出5echo ${#arr[*]}

将字符串分隔成数组

#!/bin/bash
a="hello,world,nice,to,meet,you"#要将$a分割开,先存储旧的分隔符
OLD_IFS="$IFS"#设置分隔符
IFS=","#如下会自动分隔
arr=($a)
#恢复原来的分隔符
IFS="$OLD_IFS"#遍历数组for s in ${arr[@]}doecho "$s"done#!/bin/bash
a="hello,world,nice,to,meet,you"#要将$a分割开,先存储旧的分隔符
OLD_IFS="$IFS"#设置分隔符
IFS=","#如下会自动分隔
arr=($a)
#恢复原来的分隔符
IFS="$OLD_IFS"#遍历数组for s in ${arr[@]}doecho "$s"done

变量$IFS存储着分隔符,这里我们将其设为逗号 “,” OLD_IFS用于备份默认的分隔符,使用完后将之恢复默认。

  • arr=(
    用于将字符串a按IFS分隔符分割到数组$arr
  • {arr[1]} … 分别存储分割后的数组第1 2 … 项
  • ${arr[@]}存储整个数组。
  • ${!arr[@]}存储整个索引值:1 2 3 4 …
  • ${#arr[@]} 获取数组的长度。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/221941.html<

(0)
运维的头像运维
上一篇2025-04-15 06:37
下一篇 2025-04-15 06:39

相关推荐

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注