- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深入 Shell 变量操作
CentOS 丛书目录 — 系统管理 — 网络服务 — 应用部署
深入 Shell 变量操作
内容提要
1. 掌握变量替换扩展的使用
2. 掌握变量的字符串操作
3. 掌握使用(())进行变量的整数计算
4. 学会使用 read 命令从标准输入读取变量的值
变量替换扩展
在 Shell 变量和 Shell 环境 中已经介绍了变量赋值和基本的变量替换。并已经知道 ${var} 与 $var 相同,
下面介绍变量替换扩展。
表达式 说明
${var-DEFAULT} 若var没被声明,则以 DEFAULT 作为其值 *
${var:-DEFAULT} 若var没被声明或者其值为空, 则以 DEFAULT 作为其值 *
${var=DEFAULT} 若var没被声明,则以 DEFAULT 作为其值 *
${var:=DEFAULT} 若var没被声明或者其值为空, 则以 DEFAULT 作为其值 *
${var+OTHER} 若var被声明了,那么其值就是 OTHER,否则就为空
${var:+OTHER} 若var被声明了或者其值不为空,那么其值就是 OTHER,否则就为空
${!varprefix*} 匹配之前所有以varprefix开头进行声明的变量
${!varprefix@} 匹配之前所有以varprefix开头进行声明的变量
* 如果变量var 已经被设置,那么其值就是$var。
下面举例说明变量替换扩展的使用方法。
# 将变量 var1 的值赋为空
$ var1=
$ var2=unix
# 因为 var1 已被声明,所以返回 var1 的值
$ echo ${var1-linux}
# 因为 var1 已被声明且值为空,所以返回 linux
$ echo ${var1:-linux}
linux
# 因为 vara 未被声明,所以返回 linux
$ echo ${vara-linux}
linux
# 打印变量的值
$ echo $var1,$var2,$vara
,unix,
# 当 var2 已赋值且值不为空,返回 var2 的值
# 此时, ${var2-linux} 与 ${var2:-linux} 相同
$ echo ${var2-linux}
unix
$ echo ${var2:-linux}
unix
# 因为 var1 已被声明(虽然值为空),所以返回 linux
$ echo ${var1+linux}
linux
# 因为 var2 已被声明,所以返回 linux
$ echo ${var2+linux}
linux
# 因为 var1 已被声明且值为空,所以返回空
$ echo ${var1:+linux}
# 当 var2 不为空时,与 ${var2+linux} 相同
$ echo ${var2:+linux}
linux
# 因为 vara 未被声明,所以返回空
$ echo ${vara+linux}
# 当 vara 未被声明时与 ${vara+linux} 相同
$ echo ${vara:+linux}
# 打印变量的值
$ echo $var1,$var2,$vara
,unix,
# 打印所有以 var 开头的变量
$ echo ${!var*}
var1 var2
# 与 ${!var*} 相同
$ echo ${!var@}
var1 var2
从以上的 echo $var1,$var2,$vara 命令可知,变量替换扩展并不改变变量的原值
通常变量替换扩展在作为赋值语句的右值使用,即将变量替换扩展再赋予另一个变量来使用
Shell if
使用变量替换扩展可以 脚本中的 语句简化为一个使用变量替换扩展的赋值语句
变量的字符串操作
表达式 说明
${#string} $string的长度
${string:position} 在$string中, 从位置$positi
文档评论(0)