首页 > 系统相关 >04-Shell字符串变量

04-Shell字符串变量

时间:2023-10-10 23:33:37浏览次数:37  
标签:Shell string 04 chars start 字符串 变量名 截取

1. 字符串变量的三种方式

字符串(String)就是一系列字符的组合。字符串是 Shell 编程中最常用的数据类型之一(除了数字和字符串,也没有其他类型了)

  1. 单引号方式
  2. 双引号方式, 推荐
  3. 不用引号方式
var = 'abc'
var2 = "abc"
var3 = abc

1.1 三种格式的区别

  1. 使用单引号 '' 的字符串:
    任何字符都会原样输出,在其中使用变量是无效的。

  2. 由双引号" "包围的字符串:
    其中包含了变量,那么该变量会被解析得到值,而不是原样输出
    字符串中还可以出现双引号的子字符串,但是需要转义。

  3. 不被引号包围的字符串
    不被引号包围的字符串中出现变量时也会被解析,这一点和双引号" "包围的字符串一样。
    字符串中不能出现空格,否则空格后边的字符串会作为其他变量或者命令解析。

2. 获取字符串的长度

${#字符串变量名}

3.字符串拼接方式

  1. 无符号拼接

  2. 双引号拼接

  3. 混合拼接

4. 字符串截取方法

格式 说明
${变量名: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* 左边的所有字符

标签:Shell,string,04,chars,start,字符串,变量名,截取
From: https://www.cnblogs.com/Icer-newer/p/17755965.html

相关文章

  • 03-Shell环境变量深入
    1.自定义系统环境变量1.1全局配置文件/etc/profile应用场景当前用户进入Shell环境初始化的时候会加载全局配置文件/etc/profile里面的环境变量,供给所有Shell程序使用以后只要是所有Shell程序或命令使用的变量,就可以定义在这个文件中1.2案例/etc/profile定义存储自定义......
  • 在JavaScript中,如何替换所有出现的字符串?
    内容来自DOChttps://q.houxu6.top/?s=在JavaScript中,如何替换所有出现的字符串?给定一个字符串:s="Testabctesttestabctesttesttestabctesttestabc";这似乎只删除了上面字符串中的第一个abc:s=s.replace('abc','');如何替换所有的它的出现?在大多数流......
  • Powershell 获取磁盘及内存信息
    functionGet-Resources{param($computername=$env:computername)$Info=""|SelectComputerName,Memery,DiskSize,FreeDSize$info.ComputerName=$computername#Processorutilization#$cpu=gwmiwin32_per......
  • 2021-2022 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2021) gym 104670
    原题容易想到最短路DAG求出来,起初我以为要求最小割,但这是错误的,因为可能有多条边联通了一个点的情况,这时候选择最小割不一定是最优的我们猜想一个思路:答案一定是包含\(1\)号节点的连通块全部填\(N\),剩下的填\(S\)。发现在最短路DAG中,\(1\rightarrown\)的所有路径......
  • HCIE-广域承载解决方案专题04-SRv6概念和工作原理
    HCIE-广域承载解决方案专题04-SRv6概念和工作原理SRv6概述SegmentRouting架构设计之初,就为数据平面设计了两种实现方式:一种是SR-MPLS,其复用了MPLS数据平面,可以在现有IP/MPLS网络上增量部署;另一种是SRv6,使用IPv6数据平面,基于IPv6路由扩展头进行扩展。SRv6技术本身可以简化现有......
  • shell批量检测主机是否存活
    shell批量检测主机是否存活青菜浪人 青菜浪人 2023-08-2816:40 发表于陕西收录于合集#Linux45个    这段脚本的作用是循环读取/root/ip.txt文件中的IP地址,并使用ping命令检测这些IP地址是否能够连通。对每个IP地址发送3个ICMP包,并将结果输出到/dev/null中。如果pin......
  • Mac中的Shell (1)
    分类目前mac电脑中默认的shell是zsh,之前因为adb没有读取到,所以我切换成了bash没有读取到的原因是:我是用了设置bash环境变量的方法去设置了adb的路径,而zsh此时读取不到adbzsh中环境变量设置的语句exportPATH=$PATH:xxxx这句话表示在path后面追加xxxx,后面有什么使用再更......
  • day 1 数组 704.二分查找、27.移除元素
    704.二分查找题目链接:704.二分查找视频教程文章教程思路利用middle去寻找target前提条件:这道题目的前提是数组为有序数组,同时题目还强调数组中无重复元素,因为一旦有重复元素,二分查找法返回的元素下标可能就不唯一,这些都是二分法的前提,以后看到题目描述后可以先想一想......
  • 力扣-2744-最大字符串配对数目
    给你一个下标从0开始的数组words,数组中包含互不相同的字符串。如果字符串words[i]与字符串words[j]满足以下条件,我们称它们可以匹配:字符串words[i]等于words[j]的反转字符串。0<=i<j<words.length请你返回数组words中的最大匹配数目。注意,每个字符串最......
  • C# BYTE[] 与16进制字符串互相转换
     byte[]转16进制字符串方法一、byte[]resultArray=newbyte[]{1,2,3,4,5,6,7,8,9};BitConverter.ToString(resultArray).Replace("-","") 方法二、  ///<summary>///字节数组转16进制字符串///</summary>///<paramname="bytes"><......