linux shell编程指南之字符串与数组

2023-12-05 0 851
目录
  • 前言
  • 一、shell 中字符串的几种格式
    • 三种写法的区别
  • 二、字符串常用操作
    • 1、获取字符串长度
    • 2、字符串拼接
    • 3、字符串截取
  • 三、数组
    • 1、数组语法
    • 2、数组定义
    • 3、数组中值的获取
    • 4、数组的拼接
    • 5、数组的删除
  • 总结

    前言

    对字符串的操作在众多的编程语言中可以说是最基础的了,字符串(String)就是一系列字符的组合。字符串是 Shell 编程中最常用的数据类型之一(除了数字和字符串,也没有其他类型了)。

    一、shell 中字符串的几种格式

    在shell中,字符串主要有下面几类写法:

  • 单引号方式
  • 双引号方式, 推荐
  • 不用引号方式
  • linux shell编程指南之字符串与数组

    三种写法的区别

    1、使用单引号 '' 的字符串:

    任何字符都会原样输出,在其中使用变量是无效的。

    linux shell编程指南之字符串与数组

    2、由双引号" "包围的字符串:

    1)其中包含了变量,那么该变量会被解析得到值,而不是原样输出;

    2)字符串中还可以出现双引号的子字符串,但是需要转义;

    linux shell编程指南之字符串与数组

    3、不被引号包围的字符串

    1)不被引号包围的字符串中出现变量时也会被解析,这一点和双引号" "包围的字符串一样;

    2)字符串中不能出现空格,否则空格后边的字符串会作为其他变量或者命令解析;

    linux shell编程指南之字符串与数组

    二、字符串常用操作

    1、获取字符串长度

    ${#字符串变量名}

    linux shell编程指南之字符串与数组

    2、字符串拼接

    几种常用的拼接方式:

  • 无符号拼接
  • 双引号拼接
  • 混合拼接
  • 无符号拼接

    linux shell编程指南之字符串与数组

    双引号拼接

    linux shell编程指南之字符串与数组

    混合拼接

    linux shell编程指南之字符串与数组

    3、字符串截取

    字符串截取操作在众多的编程语言中可以说是非常常见的一种操作了,尤其是在python语言中,使用非常高频,而在shell中,也提供了毕竟丰富的字符串截取的操作;

    格式说明${变量名:start:length}从 string 字符串的左边第 start 个字符开始, 向右截取 length 个字符。${变量名:start}从 string 字符串的左边第 start 个字符开始截取,直到最后。${变量名:0-start:length}从 string 字符串的右边第 start 个字符开始, 向右截取 length 个字符。${变量名:0-start}从 string 字符串的右边第 start 个字符开始截取,直到最后。${变量名#*chars}从 string 字符串第一次出现 *chars 的位置开始, 截取 *chars 右边的所有字符。${变量名##*chars}从 string 字符串最后一次出现 *chars 的位置开始, 截取 *chars 右边的所有字符。${变量名%chars*}从 string 字符串最后第一次出现 chars* 的位置开始, 截取 chars* 左边的所有字符。${变量名%%chars*}从 string 字符串第一次出现 chars* 的位置开始, 截取 chars* 左边的所有字符

    下面随机演示几个截取的操作命令

    linux shell编程指南之字符串与数组

    linux shell编程指南之字符串与数组

    三、数组

    Shell 支持数组(Array), 数组是若干数据的集合,其中的每一份数据都称为数组的元素。

    注意Bash Shell 只支持一维数组,不支持多维数组

    1、数组语法

    在 Shell 中,用括号( )来表示数组,数组元素之间用空格来分隔. 语法为

    array_name=(item1 item2 …) # 方式1array_name=([索引下标1]=item1 [索引下标2]=item2 …) # 方式2

    注意,赋值号 = 两边不能有空格

    2、数组定义

    使用小括号定义一组数字

    num1=(1 2 3 4 5)

    linux shell编程指南之字符串与数组

    数组中可以存在不同类型的元素

    num1=(1 2 3 4 “hello”)

    linux shell编程指南之字符串与数组

    Shell数组元素定义后不是固定的, 定义后还可以赋值

    arr[6]=100

    也可以给指定元素赋值初始化

    arr2=([0]=1 [2]=100 [4]=aa)

    3、数组中值的获取

    1.通过下标获取元素值,index从0开始

    ${arr[index]}

    linux shell编程指南之字符串与数组

    2、获取值同时复制给其他变量

    item=${arr[index]}

    linux shell编程指南之字符串与数组

    3、使用 @ 或 * 可获取数组中的所有元素

    ${arr[@]}
    ${arr[*]}

    linux shell编程指南之字符串与数组

    4.获取数组的长度或个数

    ${#arr[@]}
    ${#arr[*]}

    linux shell编程指南之字符串与数组

    5.获取数组指定元素的字符长度

    ${#arr[索引]}

    linux shell编程指南之字符串与数组

    4、数组的拼接

    所谓 Shell 的数组拼接(数组合并),就是将两个数组连接成一个数组

    语法

    使用 @ 和 * 获取数组所有元素之后进行拼接:

    array_new=(${array1[@]} ${array2[@]} …)
    array_new=(${array1[*]} ${array2[*]} …)

    案例展示

    linux shell编程指南之字符串与数组

    5、数组的删除

    删除数组指定元素数据

    unset array_name[index]

    删除整个数组

    unset array_name

    案例展示:删除num1 中的第一个元素

    linux shell编程指南之字符串与数组

    案例展示:删除num1这个数组

    linux shell编程指南之字符串与数组

    总结

    到此这篇关于linux shell编程指南之字符串与数组的文章就介绍到这了,更多相关shell字符串与数组内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

    您可能感兴趣的文章:

    • shell脚本字符串和数组的使用操作方法
    • shell 判断字符串是否存在数组中的实现示例
    • shell编程入门之变量,字符串,数组,函数使用方法总结

    收藏 (0) 打赏

    感谢您的支持,我会继续努力的!

    打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
    点赞 (0)

    悠久资源 linux shell linux shell编程指南之字符串与数组 https://www.u-9.cn/jiaoben/linuxshell/101768.html

    常见问题

    相关文章

    发表评论
    暂无评论
    官方客服团队

    为您解决烦忧 - 24小时在线 专业服务