`
keep
  • 浏览: 102948 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Bash的字符串操作符

阅读更多

版权声明 :转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://franksun.blogbus.com/logs/17729745.html

1. 引用Bash变量的简洁形式为$varname ,它是一种完整形式为${varname }

2. 替换操作符

    (1)${varname :-word } 。若varname 存在且非null,返回其值,否则返回word用来返回默认值

    (2)${varname :+word } 。若varname 存在且非null,返回word ,否则返回null。用来测试存在性

    (3)${varname :=word } 。若varname 存在且非null,返回其值,否则将其设置为word ,再返回其值。用来设置默认值

    (4)${varname :?message } 。若varname 存在且非null,返回其值,否则打印varname :后跟信息message ,并退出当前命令或脚本。用来捕获未定义变量

    (5)${varname :offset } ${varname :offset :length } 。返回$varnameoffset 位置开始(首字符为0),长length 的子字符串。若省略长度则至尾字符。

3. 模式匹配操作符 (此处的模式是指bash通配符 意义上的模式):

    (1)${variable #pattern } 。若模式匹配变量的开头 ,删除最短 的匹配部分,并返回其余部分。${variable ##pattern } 。若模式匹配变量的开头 ,删除最长 的匹配部分,并返回其余部分。

    (2)${variable %pattern } 。若模式匹配变量的结尾 ,删除最短 的匹配部分,并返回其余部分。${varible %%pattern } 。若模式匹配变量的结尾 ,删除最长 的匹配部分,并返回其余部分。

    (3)${variable /pattern /string } ${variable //pattern /string } 。二者都是将variable 中匹配模式的最长 部分替换为string 。前者只替换首个 匹配的部分。后者替换所有 匹配的部分。

4. 长度操作符${#varname } 。返回变量字符串值的长度。

分享到:
评论

相关推荐

    Shell 字符串拼接的实现示例

    字符串的基本操作 脚本 1 # 声明字符串 str01=str01 echo ${str01} # 单引号也可以 # 不过后面的例子, 通常是用 双引号, 具体原因, 以后会解释\nstr02='str02' echo ${str02} # 对引号的转义, 这里就不提了 2. ...

    Linux高级bash编程

    操作符和相关的主题 8.1. 操作符 8.2. 数字常量 第三部分. 超越基本 9. 变量重游 9.1. 内部变量 9.2. 操作字符串 9.3. 参数替换 9.4. 指定类型的变量:declare或者typeset 9.5. 变量的间接引用 9.6. $...

    Advanced Bash-Scripting Guide <>

    8. 操作符和相关的主题 8.1. 操作符 8.2. 数字常量 第三部分. 超越基本 9. 变量重游 9.1. 内部变量 9.2. 操作字符串 9.3. 参数替换 9.4. 指定类型的变量:declare 或者typeset 9.5. 变量的间接引用 9.6. $RANDOM: ...

    高级Bash脚本编程指南.pdf

    操作字符串 9.3. 参数替换 9.4. 指定变量的类型: 使用declare或者typeset 9.5. 变量的间接引用 9.6. $RANDOM: 产生随机整数 9.7. 双圆括号结构 10. 循环与分支 10.1. 循环 10.2. 嵌套循环 10.3. 循环...

    高级bash脚本编程指南(中英文合集)

    9.2. 操作字符串 9.3. 参数替换 9.4. 指定类型的变量:declare 或者typeset 9.5. 变量的间接引用 9.6. $RANDOM: 产生随机整数 9.7. 双圆括号结构 10. 循环和分支 10.1. 循环 10.2. 嵌套循环 10.3. 循环控制 ...

    _save:书签实用程序,用于保存可通过bash运行的独立字符串条目或分类条目

    首先,为了方便起见,将文件重命名$ mv _save 从这一点开始,将“ _save”更改为您刚刚选择的&lt;newName&gt; 然后,为了将其添加到您的PATH中,您可以执行以下操作:这绝不是唯一,也不是最佳方法要将其临时添加到您的...

    bash

    重击 bashLT是一个简单的shell,也是Bourne-again shell bash的小弟弟,并提供了bash功能的... 到其“打印”值(例如,如果值为零,则为字符串“ 0”)。 目录操作: cd -p将当前工作目录打印到标准输出。 cd DIRNA

    入门学习Linux常用必会60个命令实例详解doc/txt

    例如,用户登录后,按一下“Alt+ F2”键,用户就可以看到上面出现的“login:”提示符,说明用户看到了第二个虚拟控制台。然后只需按“Alt+ F1”键,就可以回到第一个虚拟控制台。一个新安装的Linux系统允许用户使用...

    Shell编程范例之文件操作-TinyLab原创

    因此之前介绍的《shell编程范例之字符串操作》在这里将会得到广泛的应用,关于普通文件的读写操作我想我们已经用得非常熟练啦,那就是“重定向”,在这里,我们会把这部分独立出来介绍。关于文件在Linux下的“数字化”...

    Shell解析器,格式化程序和解释器(sh / bash / mksh),包括shfmt-Golang开发

    有关诸如对字符串执行shell扩展之类的高级操作,请参见shell示例。 shfmt GO111MODULE =运行时获取mvdan.cc/sh/v3/cmd/shfmt shfmt格式的shell程序。 它可以使用制表符或任意数量的空格缩进。 请参阅canonical.sh以...

    学习shell必备(CN).chm

    9.2. 操作字符串 9.3. 参数替换 9.4. 指定变量的类型: 使用declare或者typeset 9.5. 变量的间接引用 9.6. $RANDOM: 产生随机整数 9.7. 双圆括号结构 10. 循环与分支 10.1. 循环 10.2. 嵌套循环 10.3. 循环控制 10.4....

    宋劲彬的嵌入式C语言一站式编程

    1. 字符串操作函数 1.1. 初始化字符串 1.2. 取字符串的长度 1.3. 拷贝字符串 1.4. 连接字符串 1.5. 比较字符串 1.6. 搜索字符串 1.7. 分割字符串 2. 标准I/O库函数 2.1. 文件的基本概念 2.2. fopen/fclose 2.3. ...

    跟老男孩学Linux运维:Shell编程实战

    / 976.3 字符串测试表达式 / 1026.4 整数二元比较操作符 / 1056.5 逻辑操作符 / 1086.6 测试表达式test、[]、[[]]、(())的区别总结 / 120第7章 if条件语句的知识与实践 / 1217.1 if条件语句 / 1217.2 if条件...

    readline:支持自定义模式指示器的Readline fork

    具有可配置模式字符串的Readline 这是readline 6.3的修补版本,增加了对自定义提示模式指示符的支持。 有关动机和用法的更多详细信息,请参见相应的bash回购停止该分支设置为生成和安装独立版本的libreadline。 如果...

    边干边学Linux__第二版_doc格式

    3.5 显示字符串echo 3.6 命令行中使用扩展符 第4章 文件权限与文件共享 4.1 存取权限 4.2 改变文件的存取权限 4.3 特殊权限位SUID、SGID、Sticky 4.4 硬链接 4.5 符号链接 第5章 文件管理工具 5.1 正则表达式 5.2 ...

    WINCVS和CVSNT安装包

    这种方法有助于一些难以从 $Revision: $ 这样的字符串中剥去关键字分界符的编程语言生成文件。但是,一旦删除关键字名,以后将不能执行关键字替换,所以应小心使用该选项。 注意:代码中如果有$Revision$和$Date$...

    os-shell-acparker20:GitHub Classroom创建的os-shell-acparker20

    要求您的外壳应满足以下要求: 在需要命令时打印由外壳变量PS1指定的提示字符串(如果未设置PS1,则默认提示应为“ $”)。 接受用于指定命令和参数的标准unix命令外壳语法您的外壳程序应该创建一个子进程,该子进程...

    os-shell-mpolague:GitHub Classroom创建的os-shell-mpolague

    在需要命令时打印由外壳变量PS1指定的提示字符串(如果未设置PS1,则默认提示应为“ $”)。 接受用于指定命令和参数的标准unix命令外壳语法 您的外壳程序应该创建一个子进程,该子进程使用execve来运行带有参数的...

    os-shell-gvelasquez2:GitHub课堂创建的os-shell-gvelasquez2

    在需要命令时打印由外壳变量PS1指定的提示字符串(如果未设置PS1,则默认提示应为“ $”)。 接受用于指定命令和参数的标准unix命令外壳语法 您的外壳程序应该创建一个子进程,该子进程使用execve来运行带有参数的...

Global site tag (gtag.js) - Google Analytics