发布时间:2014-09-05 16:57:54作者:知识屋
高级变量
基本形式
[1].变量扩展 格式 ${变量名称}
[2].命令扩展 格式 $(命令)
[3].算术扩展 格式 $((算术式))
1.变量扩展
基本形式:${变量名称}
变量扩展含义:一种简易的条件判断,对不同的条件赋予变量不同的值替换.它和变量存在与否的关系很大.
1.1 测试变量是否存在的基本用法
语法: ${待测变量-默认值}
说明:若待测变量不存在则符合判断条件,以传回默认值作为处置.
解析:若待测变量不存在则返回默认值,否则返回变量的值
实例:
unset a
echo ${a-'默认'} #输出为'默认'
1.2 测试变量不存在或其值为空时传回一个默认值
语法:${待测变量:-默认值}
实例:
a=
echo ${a:-'默认'} #输出为'默认'
1.3 测试变量不存在或其值为空给变量赋予一个默认值
语法:${待测变量:=默认值}
实例:
a=
echo ${a:='默认'}
echo $a #输出为2行'默认'
1.4 测试变量不存在或其值为空,输出一个提示信息
语法:${待测变量:?提示信息}
实例:
a=
echo r={a:?提示信息} #输出"提示信息"
1.5 测试变量存在且为非空则返回真值
语法:${待测变量:+真值}
实例:
a=hello
echo ${a:+world} #输出为"world"
总结:
符号 作用
: 判断变量是否为空,若为空则为真
+ 正向,判断变量是否存在且不为空,若存在且不为空则为真
- 反向,判断变量是否不存在,若不存在则为空
= 赋值,
? 提示信息
2.取字符串切片,获得字符串长度
2.1 取字符串切片
语法:
[1].${变量:开始的位置索引}
作用:截取从指定的位置开始到字符串结束的所有字符,开始字符的索引为0
实例:
str="hello world"
echo ${str:6} #输出结果为"world"
[2].${变量:起始位置:长度}
作用:截取从指定的起始位置开始的指定长度的字符串。
实例:
str="hello world"
echo ${str:6:2} #输出为"wo"
2.2 计算字符串长度
语法:${#变量名称}
实例:
str="hello world"
echo ${#str} #输出结果为11
3.对比样式
目的:截取变量值(字符串)的某一个部分
做法:将符合样式的部分字符串删除或替换
3.1 由字符串前面开始对比删除最短的相符者
语法:${待测变量#样式}
说明:从待测变量的值的左边开始对比,删除最短符合样式的字符串
实例:
filename="/usr/sbin/ntpdate"
echo ${filename#/*/} #显示结果sbin/ntpdate
3.2 由字符串前面开始对比删除最长的相符者
语法:${待测变量##样式}
实例:
filename="/usr/sbin/ntpdate"
echo ${filename##/*/} #显示结果ntpdate
3.3 由字符串后面开始对比删除最短的相符者
语法:${待测变量%样式}
实例:
filename="/usr/sbin/ntpdate"
echo ${filename%/*} #输出结果/usr/sbin
3.4 由字符串后面开始对比删除最长的相符者
语法:${待测变量%%样式}
实例:
filename="hello/usr/sbin/ntpdate"
echo ${filename%%/*} #输出结果hello
4.替换或删除部分字符串
4.1 只替换找到的第一个字符串
语法:${待测变量/样式/替换}
实例:
str="hello hello"
echo ${str/hello/world} #结果为world hello
4.2 替换找到的所有样式字符串
语法:${待测变量//样式/替换}
实例:
str="hello hello"
echo ${str/hello/world} #结果为world world
4.3 删除第一个指定的字符串
语法:${待测变量/要删除的字符串/}
实例:
str="hello hello"
echo ${str/hello/} #结果为hello
4.4 删除所有指定的字符串
语法:${待测变量//要删除的变量/}
实例:
str="hello world hello"
echo ${str//hello/} #输出结果为world
5.命令扩展
语法:$(命令)
实例: time=$(date) 等价 time=`date`
6.算术扩展
语法:$((算术))
实例:
echo "a=$((5*5))" #结果为a=25
作者“huangyandong”
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能