shell 字符串(六)

shell 字符串的操作说明

                                             

表达式

说明

${#string}

返回字符串的长度

${string:position}

在$string 中从位置$position之后开始提取字串

${string:position:length}

在$string 中,从位置$postion之后开始提取$length的子串

${string#*substring}

从变量$string开头删除最短匹配$substring(从左到右)

${string##*substring}

从变量$string开头删除最长匹配$substring(从左到右)

${string%substring*}

从变量$string结尾开始删除最短匹配$substring(从右道左)

${string%%substring*}

从变量$string结尾开始删除最长匹配$substring

${string/substring/replace}

使用$replace来替换第一个匹配的$substring

${string/#substring/replace}

如果$string前缀匹配$substring,就用$replace替换匹配$substring

${string/%substring/replace}

如果$string后缀匹配$substring ,就用$replace替换匹配$substring


依次举例

(1)${#string}

[root@hadoop07 Desktop]# name=lisi

[root@hadoop07 Desktop]# echo ${#name}

4

(2)${string:position}

[root@hadoop07 Desktop]# name=zhangsan

[root@hadoop07 Desktop]# echo ${name:3}

ngsan

(3)${string:position:length}

[root@hadoop07 Desktop]# name=wangwu

[root@hadoop07 Desktop]# echo ${name:3:2}

gw

(4)${string#*substring}

[root@hadoop07 Desktop]# name=operaterok

[root@hadoop07 Desktop]# echo ${name#*o}

peraterok

(5)${string##*substring}

[root@hadoop07 Desktop]# name=operateok

[root@hadoop07 Desktop]# echo ${name##*o}

k

(6)${string%*substring}

[root@hadoop07 Desktop]# name=operateok

[root@hadoop07 Desktop]# echo ${name%o*}

operate

(7)${string%%substring*}

[root@hadoop07 Desktop]# name=koperateok

[root@hadoop07 Desktop]# echo ${name%%o*}

k

(8)${string/substring/replace}

[root@hadoop07 Desktop]# name=operateok

[root@hadoop07 Desktop]# echo ${name/a/b}

operbteok

(9)${string/#substring/replace}

[root@hadoop07 Desktop]# name=operateok

[root@hadoop07 Desktop]# echo ${name/#op/dd}

dderateok

(10)${string/%substring/replace}

[root@hadoop07 Desktop]# name=operateok

[root@hadoop07 Desktop]# echo ${name/%ok/dd}

operatedd

判断变量值的操作

运算符合

替换

${value:-word}

如果变量名存在且非null,则返回变量的值,否则,返回word字符串,用途,如果变量未定义,则返回默认值。

范例:${value:-word}如果value未定义,则表达式的值为word

${value:=word}

如果变量名存在且非null,则返回变量值,否则,设置这个变量值为word,并返回其值,

用途:如果变量未定义,则设置变量未默认值,并返回默认值 ,范例:$value:=word}如果value未定义,则设置value的值为word,返回表达式的值也为word

${value:?”not defined”}

如果变量名存在且非null,则返回变量的值,否则显示变量名:message 并推出当前的命令或者脚本。

用途:用户捕捉由于变量未定义而导致的错误,并推出程序,

范例:${value:?”not defined”} 如果value未定义,则显示bash: value:  not defined  程序并退出


(1)${value:-word}

[root@hadoop07 Desktop]# echo ${n:-word}

word

(2)${value:=word}

[root@hadoop07 Desktop]# echo ${n:=word}

word

[root@hadoop07 Desktop]# echo $n

word

(3)${value:?”not defined”}

[root@hadoop07 Desktop]# echo ${na:? "not defined"}

bash: na:  not defined





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值