当前位置:   article > 正文

【shell】字符串(定义、拼接、长度、子串)、数组(定义、取值、赋值、长度)_shell定义字符串

shell定义字符串
1.字符串

因为shell语言的数据类型比较单一,所以字符串非常常用

1.1 定义字符串
num=5
num='5'
num="5"
  • 1
  • 2
  • 3

我们在定义变量的时候可以使用单引号、双引号或不用引号。单引号和双引号的区别是,单引号里的内容是什么样就是什么样,不能识别变量或转义字符

num="5"

num2='num is $num !'
echo $num2 # 输出: num is $num !

num2="num is $num !"
echo num2 #输出: num is 5 !
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
1.2 拼接字符串

字符串的拼接无需任何运算符号,
需要注意两点:

  • 拼接的变量不能出现在单引号里
  • 可以拼接空字符,但不能直接空格(可以用单双引号或空变量)
num1=555
num2=666
num3=num1$num1','num2$num2
echo num3 # 输出: num1555,num2666

str="sss""aaaa""$vv""  ""cc"  # 变量vv不存在
echo str # 输出: sssaaaa cc

str="sss""aaaa""$vv"  "cc"  # 报错,因为空白字符未用引号
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
1.3 截取子字符串

语法:${字符串名:开始位置:长度}

str="hello,word!"
# 从第1个字符开始(下标从0开始),截取5个字符
echo ${str:1:5} # 输出:ello,
  • 1
  • 2
  • 3
1.4 获取字符串长度(字符个数)

语法:${#字符串名}

str="hello,word!"
echo ${#srt}  # 输出: 11
  • 1
  • 2
2.数组
2.1 定义数组

shell语言只支持一维数组,值用圆括号括起来,每个值之间用空格分开

arr=(a b c 1 2 3)
  • 1
2.1 取值
arr=(a b c 1 2 3)

# 只能取到第一个值
echo $arr # 输出:a

# 根据下标取值
echo ${arr[3]} # 输出:1

# 取所有值
echo ${arr[@]} # 输出: a b c 1 2 3

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
2.2 赋值

我们可以根据下标改变元素的值,若下标不存在则新增元素

arr=(a b c 1 2 3)

# 下标存在,赋值(改值)
arr[0]=A
echo ${arr[@]} # 输出: A b c 1 2 3

# 下标不存在,新增
arr[8]=G
echo ${arr[@]}  输出: A b c 1 2 3 G
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
2.3 数组长度

数组长度跟字符串长度一样的查看方法

arr=(a b c 1 2 3)

# 查看数组长度
echo ${#arr[@]}  # 输出: 6

# 查看某个元素的长度
echo ${#arr[1]}  # 输出: 1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/316594
推荐阅读
相关标签
  

闽ICP备14008679号