当前位置: 首页 > news >正文

wordpress onepage龙斗seo博客

wordpress onepage,龙斗seo博客,js页面下载wordpress,鞍山市城市建设网站1. shell变量扩展 我们知道,${var}的形式可以获取变量var的值,但其实还可以有更多花式玩法。其中~表示用户根目录其实属于 波浪线扩展,这比较常见,不展开介绍了。 下面的每种情况中,word 都要经过波浪线扩…

1. shell变量扩展

我们知道,${var}的形式可以获取变量var的值,但其实还可以有更多花式玩法。其中~表示用户根目录其实属于 波浪线扩展,这比较常见,不展开介绍了。
下面的每种情况中,word 都要经过波浪线扩展,参数扩展,命令替换和 算术扩展。如果不进行子字符串扩展,bash 测试一个没有定义或值为空的 参数;忽略冒号的结果是只测试未定义的参数。
大致描述下变量扩展的功能:

扩展功能
${var}获取变量值
${!var}取变量var的值做新的变量名,再次获取新变量名的值
${!prefix*获取prefix开头的变量名
${#parameter}获取变量长度
${parameter:-word}parameter为空时,使用wrod返回
${parameter:+word}parameter非空时,使用word返回
${parameter:=word}parameter为空时,使用word返回,同时把word赋值给parameter变量
${parameter:?word}parameter为空时,打印错误信息word
${parameter:offset}从offset位置截取字符串
${parameter:offset:length从offset位置截取length长度的字符串
${parameter#word}从头开始删除最短匹配word模式的内容后返回
${parameter##word}从头开始删除最长匹配word模式的内容后返回
${parameter%word}从尾开始删除最短匹配word模式的内容后返回
${parameter%%word}从尾开始删除最长匹配word模式的内容后返回
${parameter/pattern/string}最长匹配pattern的内容替换为string
${parameter//pattern/string}所有匹配pattern的内容替换为string

1.1 什么是${!var}

${!var}是间接扩展。bash 使用以 var 的其余部分为名的变量的值作为变量的名称; 接下来新的变量被扩展,它的值用在随后的替换当中,而不是使用var自身的值。
有点拗口,举个例子就懂了

$ var_name=val
$ val="Bash expansion"
$ echo ${!var_name}
Bash expansion

所以,${!var_name}等效于${val},就是取val_name的值作为变量名,再获取新变量名的值。

!有一种例外情况,那就是${!prefix*},下面再介绍。

1.2 什么是 ${!prefix*}#

${!prefix*}实现扩展为名称以 prefix 开始的变量名,以特殊变量 IFS 的第一个字符分隔。换句话说,这种用法就是用于获取变量名的。例如:

# 创建3个以VAR开头的变量
$ VAR_A=a
$ VAR_B=b
$ VAR_C=c
# 寻找以VAR开头的变量名
$ echo ${!VAR*}
VAR_A VAR_B VAR_C

1.3 什么是 ${parameter:-word}

${parameter:-word}表示使用默认值。如果 parameter 未定义或值为空,将替换为 word 的扩展。否则,将替换为 parameter 的值。

1.4 什么是${parameter:=word}

${parameter:=word}赋默认值。如果 parameter 未定义或值为空, word 的扩展将赋予 parameter。parameter 的值将被替换。位置参数和特殊参数不能用这种方式赋值。

${parameter:=word}和${parameter:-word}有什么差别?

举个例子:

# 删除var变量
$ unset var
# 确认var变量为空
$ echo ${var}# 当var为空时,把test赋值给var,同时返回test
$ echo ${var:=test}
test
# 可以看到,此时var已经被赋值
$ echo ${var}
test
# 再次删除var变量,继续实验
$ unset var
# 当var为空时,返回test
$ echo ${var:-test}
test
# 对比验证,此时var并没有赋值
$ echo ${var}

所以,差别在于,当parameter为空时,${parameter:=word}会比${parameter:-word}多做一步,就是把word的值赋给parameter。

1.6什么是${parameter:?word}

${parameter:?word}主要用于当parameter为空时,显示错误信息word。shell 如果不是交互的,则将退出。

1.7 什么是${parameter:+word}

如果 parameter 未定义或非空,不会进行替换;否则将替换为 word 扩展后的值。这与${parameter:-word}完全相反。简单来说,就是当parameter非空时,才使用word。

1.8 什么是${parameter:offset}

同 ${parameter:offset:length}
${parameter:offset:length}可以实现字符串的截取,从offset开始,截取length个字符。如果 offset 求值结果小于 0, 值将当作从 parameter 的值的末尾算起的偏移量。如果parameter 是 @,结果是 length 个位置参数,从 offset 开始。 如果 parameter 是一个数组名,以 @ 或 * 索引,结果是数组的 length 个成员,从 ${parameter[offset]} 开始。 子字符串的下标是从 0 开始的,除非使用位置参数时,下标从 1 开始。

1.9 什么是${parameter#word}#

参考 ${parameter##word}

${parameter##word}
word支持模式匹配,从parameter的开始位置寻找匹配,一个#的是寻找最短匹配,两个#的是寻找最长匹配,把匹配的内容删除后,把剩下的返回。例如:

$ str="we are testing, we are testing"
$ echo ${str#*are}
testing, we are testing
$ echo ${str##*are}
testing

这必须是从头开始删的,如果要删除中间的某一些字符串,可以用${parameter/pattern/string}。
如果 parameter是一个数组变量,下标是@或者是*,模式删除将依次施用于数组中的每个成员,最后扩展为结果的列表。

1.10 什么是${parameter%word}

参考${parameter%%word}

${parameter%%word}
这也是在parameter中删除匹配的内容后返回。%与#非常类似,前者是从头开始匹配,后者是从尾部开始匹配。同样的,一个%是寻找最短匹配,两个%%是寻找最长匹配。例如:

$ str="we are testing, we are testing"
$ echo ${str%are*}
we are testing, we
$ echo ${str%%are*}
we

这必须是从末端开始删的,如果要删除中间的某一些字符串,可以用${parameter/pattern/string}。
如果 parameter是一个数组变量,下标是@或者是*,模式删除将依次施用于数组中的每个成员,最后扩展为结果的列表。

1.11 什么是${parameter/pattern/string}

参考${parameter//pattern/string}

${parameter//pattern/string}和${parameter/pattern/string},主要实现了字符串替换,当然,如果要替换的结果是空,就等效于删除。一个/,表示只有第一个匹配的被替换,两个/表示所有匹配的都替换。例如:

$ str="we are testing, we are testing"
# 替换首次匹配
$ echo ${str/we are/I am}
I am testing, we are testing
# 替换所有匹配
$ echo ${str//we are/I am}
I am testing, I am testing
# 删除首次匹配
$ echo ${str/are/}
we testing, we are testing
# 删除所有匹配
$ echo ${str//are/}
we testing, we testing

如果patten以#开始,例如KaTeX parse error: Expected '}', got '#' at position 6: {str/#̲we are/},则必须从头开…{str/%are testing/},必须从末端就要完全匹配。
如果 parameter是一个数组变量,下标是@或者是*,模式删除将依次施用于数组中的每个成员,最后扩展为结果的列表。

http://www.ho-use.cn/article/1504.html

相关文章:

  • 做的网站加载太慢怎么办百度网盘app下载安装官方免费版
  • 温州网站建设前十公司网站快速排名案例
  • 手机管理网站模板下载百度高级搜索网址
  • 广州犀牛云网站建设重庆网站seo外包
  • 做服装找工作网站百度官网推广平台电话
  • 网站建设vs网络推广seo免费软件
  • dw怎么做网站教程如何建立网站服务器
  • 科技团队网站免费网站建站平台
  • 济南网络推广seoseo点击软件手机
  • 电影网站建设seo排名的影响因素有哪些
  • 那些网站做汽车可靠性如何获取网站的seo
  • 推广模式有几种做seo是什么意思
  • 大连建站平台深圳做网站的公司
  • 做网站市场价格多少信息流广告加盟代理
  • 哈尔滨营销网站制作win7系统优化工具
  • 分类信息有哪些网站深圳网站seo推广
  • 肥西县重点建设局网站seo平台有哪些
  • 网站开启速度慢厦门人才网官网招聘信息网
  • 百度开放云做网站谷歌官方网站注册
  • 光谷网站建设公司上海网络推广公司
  • 性价比最高网站建设员工培训课程
  • 导航网站 win8风格免费推广方式有哪些
  • 精品课程 网站建设质量百度官方官网
  • 成都旅游几月份去最佳时间福州seo快速排名软件
  • 福建网站开发公司厦门seo搜索引擎优化
  • 网站内容创意百度链接提交收录入口
  • 南和网站建设公司太原网站建设视频剪辑培训
  • 一号网站建设网站制作免费推广网站2024
  • 网站开发图片加载过慢如何优化宁波seo外包服务平台
  • web前端期末考试网页制作常德网站seo