shell变量的高级操作实例

前端之家收集整理的这篇文章主要介绍了shell变量的高级操作实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

shell变量的高级操作实例@H_301_4@

wKioL1mdFw6Q9HRzAAAa4JWan34154.png

@H_301_4@

1 字符串切片

@H_301_4@格式:@H_301_4@${variable:start:length}@H_301_4@

作用:切取变量中指定长度的字符串,并指定起始位置。

name="michaelhu"
echo${name:2:3}
cha

2 计算字符串的长度

@H_301_4@格式1:${#:variable}@H_301_4@

@H_301_4@格式2:expr length "$variable"@H_301_4@

[root@python~]#echo${#name}
10
[root@python~]#exprlength"$name"
10

@H_301_4@3 删除变量中指定的样式

@H_301_4@格式1:${variable#style}@H_301_4@

作用:由左边开始,删除第一个匹配到的样式

filename="/usr/sbin/ntpdate"
echo${filename#/*/}
sbin/ntpdate

@H_301_4@格式2: ${variale##style}@H_301_4@

作用:由左开始,匹配整个字符串中的样式,删除匹配到最长的样式

filename="/usr/sbin/ntpdate"
echo${filename##/*/}
ntpdate

@H_301_4@格式3:${variale%style}@H_301_4@

作用:由右边开始,删除第一个匹配到的样式

filename="/usr/sbin/ntpdate"
echo${filename%/*}
/usr/sbin

@H_301_4@格式4: ${variable%%style@H_301_4@}

作用:由右边开始,匹配整个字符串中的样式,删除匹配到的最长的字符串

domainname="www.huwho.com"
echo${domainname%%.*}
www

@H_301_4@4 替换变量中字符串

@H_301_4@格式1:${variable/style/replace}@H_301_4@

作用:替换第一个匹配到的字符串

name="michaelhu"
echo${name/michael/neo}
neohu

@H_301_4@格式2: ${variable//style/replace}@H_301_4@

作用:替换匹配到的全部字符串

name="michaelmichaelhu"
echo${name//michael/sternberg}
sternbergsternberghu

@H_301_4@5 删除变量中的字符串

@H_301_4@格式1:${variable/style/}@H_301_4@

作用:自左匹配,删除第一个匹配到的字符串

echo${name/michael/}
michaelhu

@H_301_4@格式2:${variable//style/@H_301_4@}

作用:删除匹配到的所有字符串

echo${name//michael/}
hu

@H_301_4@6 测试存在性及空值

@H_301_4@格式1:${test_variable-value}@H_301_4@

作用:若变量不存在,则符合判断,传回默认值

[root@python~]#unsetname
[root@python~]#echo${name-"kong"}
kong

@H_301_4@格式2: ${test_variable:=value}@H_301_4@

作用:若变量不存在或其值为空,则符合判断,传回默认值

[root@python~]#test=""
[root@python~]#echo${test:="true_kong"}
true_kong

@H_301_4@格式3:${test_variable:?"message"}@H_301_4@

作用:测试变量是否为空或不存在,提示错误信息

[root@python~]#test=""
[root@python~]#echo${test:?"sorryempty"}
-bash:test:sorryempty

@H_301_4@格式4:${test_variable:+"mesage"}@H_301_4@

作用:测试变量是否存在且非空,则符合判断条件

[root@python~]#test="funy"
[root@python~]#echo${test:+"true"}
true

猜你在找的Bash相关文章