shell变量的高级操作实例

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

shell变量的高级操作实例

wKioL1mdFw6Q9HRzAAAa4JWan34154.png

1 字符串切片

格式:${variable:start:length}

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

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

2 计算字符串的长度

格式1:${#:variable}

格式2:expr length "$variable"

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

3 删除变量中指定的样式

格式1:${variable#style}

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

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

格式2: ${variale##style}

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

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

格式3:${variale%style}

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

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

格式4: ${variable%%style}

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

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

4 替换变量中字符串

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

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

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

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

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

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

5 删除变量中的字符串

格式1:${variable/style/}

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

echo${name/michael/}
michaelhu

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

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

echo${name//michael/}
hu

6 测试存在性及空值

格式1:${test_variable-value}

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

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

格式2: ${test_variable:=value}

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

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

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

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

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

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

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

[root@python~]#test="funy"
[root@python~]#echo${test:+"true"}
true
原文链接:https://www.f2er.com/bash/391255.html

猜你在找的Bash相关文章