shell变量的高级操作实例

简介:

shell变量的高级操作实例

wKioL1mdFw6Q9HRzAAAa4JWan34154.png

    1 字符串切片

    格式:${variable:start:length}

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

1
2
3
name= "michael hu"
echo  ${name:2:3}
cha

    2 计算字符串的长度

格式1:${#:variable}

格式2:expr length "$variable"

1
2
3
4
[root@python ~] # echo ${#name}
10
[root@python ~] # expr length "$name"
10

3 删除变量中指定的样式

格式1:${variable#style} 

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

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

格式2: ${variale##style} 

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

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

格式3:${variale%style} 

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

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

格式4: ${variable%%style

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

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

 4 替换变量中字符串

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

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

1
2
3
name= "michael hu"
echo  ${name /michael/neo }
neo hu

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

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

1
2
3
name= "michael michael hu"
echo  ${name //michael/sternberg }
sternberg sternberg hu

 5 删除变量中的字符串

格式1:${variable/style/} 

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

1
2
echo  ${name /michael/ }
michael hu

格式2:${variable//style/

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

1
2
echo  ${name //michael/ }
hu

 6 测试存在性及空值

格式1:${test_variable-value} 

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

1
2
3
[root@python ~] # unset name
[root@python ~] # echo ${name-"kong"}
kong

格式2: ${test_variable:=value} 

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

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

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

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

1
2
3
[root@python ~] # test=""
[root@python ~] # echo ${test:?"sorry empty"}
- bash test : sorry empty

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

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

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



本文转自 PowerMichael 51CTO博客,原文链接:http://blog.51cto.com/huwho/1958626,如需转载请自行联系原作者
相关文章
|
7月前
|
Shell Python
python 和shell 变量互相传递
python 和shell 变量互相传递
67 0
|
2月前
|
存储 Java Shell
Shell 变量
10月更文挑战第2天
26 0
|
2月前
|
Shell 应用服务中间件 网络安全
|
3月前
|
Shell
shell脚本变量 $name ${name}啥区别
shell脚本变量 $name ${name}啥区别
|
2月前
|
SQL Shell 数据库
在TDengine容器中创建初始化数据库的Shell命令实例
以上就是在Docker容器环境中部署并初始化TDengine数据库的全过程,希望对你有所帮助。
72 0
|
3月前
|
Java Shell Linux
Shell 变量设置
Shell设置变量
48 5
|
3月前
|
Java Shell Linux
Shell 变量设置25-1
Shell编程语言是一种非类型的解释型语言,无需像C++/Java那样事先声明变量。通过赋值即可定义变量,在Linux支持的所有Shell中均适用。变量分为局部变量与环境变量,前者仅限于定义脚本内使用,后者可在其派生的子进程中使用。常见系统变量如$0表示当前程序名称,$n表示第n个参数(n=1,2,...,9),$*代表所有参数,$#代表参数个数,$?表示命令执行后的状态(0为成功),$UID为当前用户ID,$PWD表示当前目录。定义变量如`A=123`,
32 0
|
4月前
|
Shell
[shell]在curl测试的data参数中引用变量
[shell]在curl测试的data参数中引用变量
225 1
|
5月前
|
分布式计算 大数据 Shell
MaxCompute产品使用合集之odps shell如何将ech变量的结果集合写入文件,并且指定服务器的位置
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
46 10
|
7月前
|
Shell Linux Perl
Linux|如何允许 awk 使用 Shell 变量
Linux|如何允许 awk 使用 Shell 变量
94 2