您好,欢迎来到易妖游戏网。
搜索
您的当前位置:首页(五)shell字符串深入解析

(五)shell字符串深入解析

来源:易妖游戏网
(五)shell字符串深⼊解析

(1)基本⽤法1) 由单引号' '包围的字符串:

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

字符串中不能出现单引号,即使对单引号进⾏转义也不⾏。

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

如果其中包含了某个变量,那么该变量会被解析(得到该变量的值),⽽不是原样输出。字符串中可以出现双引号,只要它被转义了就⾏。

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

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

#!/bin/bash#单引号有问题n=56

a1=num=$na2='num=$n'a3=\"num=$n\"echo $a1echo $a2echo $a3#⽆引号有问题#b1=china is niceb2='china is nice'b3=\"china is nice\"echo $b1echo $b2echo $b3

#获取字符串长度

c1=\"super star is reba\"echo ${#c1}结果:

(2)字符串截取#!/bin/bash

#字符串拼接 两个str放在⼀起a1=\"迪丽热巴\"a2=\"欧阳图图\"b1=$a1$a2

b2='$a1 and $a2'b3=\"$a1 and $a2\"b4=a1':'a2

echo $b1echo $b2echo $b3

echo ----------------------#通过位置截取

#与python的切⽚类似

# ${截取的字符串:起始位置从0开始:截取的长度}#左边往后: ${string:start:length}#右边往后: ${string:0-start:length}

c1=\"the star in my heart is reba\"c2=\"迪丽热巴\"echo ${c2:2:2}echo ${c1:3:10}echo ${c2:0-2:4}echo ${c1:0-3:10}

#并没有正在截取到原字符串echo $c2echo $c1

echo ----------------------#通过指定字符截取

# ${截取的字符串#*指定字符}

# #:表⽰可以截取指定字符右边所有的字符# *:通配符,表⽰任意长度的字符串echo ${c1#star}echo ${c1#*star}echo ${c2#热}echo ${c2#*热}

echo ----------------------url=\"https://www.cnblogs.com/oytt/p/13398266.html\"url2=\"rr=aa==tt===aa++99\"

echo ${url#*/} #遇到第⼀个匹配结束echo ${url##*/} #遇到最后⼀个匹配结束echo ${url2#*aa}echo ${url2##*aa}echo ----------------------#通过%截取左边字符# ${string%chars*}

echo ${url%/*} #遇到第⼀个匹配结束echo ${url%%/*} #遇到最后⼀个匹配结束echo ${url2%aa*}

来⾃shell的随笔均参考⾃

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- vipyiyao.com 版权所有 湘ICP备2023022495号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务