`
字符串
  • 浏览: 37800 次
文章分类
社区版块
存档分类
最新评论

shell中的参数替换

 
阅读更多

常用类型参数替换

${parameter}            与$parameter相同, 也就是变量parameter的值.

在某些上下文中, ${parameter}很少会产生混淆.

 

${parameter-default}     如果变量parameter没被声明, 那么就使用默认值.

${parameter:-default}     如果变量parameter没被设置, 那么就使用默认值.

${parameter-default}和${parameter:-default}在绝大多数的情况下都是相同的.

只有在parameter已经被声明, 但是被赋null值得时候, 这个额外的:才会产生不同

的结果(即此时前者不会输出,后者可以输出).

 

${parameter=default}     如果变量parameter没声明, 那么就把它的值设为default.

${parameter:=default}     如果变量parameter没设置, 那么就把它的值设为default.

这两种形式基本上是一样的. 只有在变量$parameter被声明并且被设置为null值的时候, :才会引

起这两种形式的不同.(如上边所示)

 

${parameter+alt_value}     如果变量parameter被声明了, 那么就使用alt_value, 否则就使用

null字符串.

${parameter:+alt_value}    如果变量parameter被设置了, 那么就使用alt_value, 否则就使用

null字符串.

这两种形式绝大多数情况下都一样. 只有在parameter被声明并且设置为null值的时候, 多出来的

这个:才会引起这两种形式的不同(即后者不会输出).

 

${parameter?err_msg}     如果parameter已经被声明, 那么就使用设置的值, 否则打印err_msg

错误消息.

${parameter:?err_msg}    如果parameter已经被设置, 那么就使用设置的值, 否则打印

err_msg错误消息.

这两种形式绝大多数情况都是一样的. 和上边所讲的情况一样, 只有在parameter被声明并设置为

null值的时候, 多出来的:才会引起这两种形式的不同.

 

变量长度/子串删除

${#var}

字符串长度(变量$var得字符个数). 对于array来说, ${#array}表示的是数组中第一个元素的长度.

例外情况:

${#*}和${#@}表示位置参数的个数.

对于数组来说, ${#array[*]}和${#array[@]}表示数组中元素的个数.

 

${var#Pattern}, ${var##Pattern}

从变量$var的开头删除最短或最长匹配$Pattern的子串.

 

${var%Pattern}, ${var%%Pattern}

从变量$var的结尾删除最短或最长匹配$Pattern的子串.

 

变量扩展/子串替换

这些结构都是从ksh中引入的.

${var:pos}

变量var从位置pos开始扩展(即pos之前的字符都丢弃).

${var:pos:len}

变量var从位置pos开始, 并扩展len个字符.

${var/Pattern/Replacement}

使用Replacement来替换变量var中第一个匹配Pattern的字符串.

${var//Pattern/Replacement}

全局替换. 所有在变量var匹配Pattern的字符串, 都会被替换为Replacement.

${!varprefix*}, ${!varprefix@}

匹配所有之前声明过的, 并且以varprefix开头的变量.

分享到:
评论

相关推荐

    shell中变量替换.docx

    在Shell编程中,变量替换和测试是至关重要的概念。Shell是一种解释型的脚本语言,广泛应用于Linux和Unix系统中,用于自动化系统管理任务。在Shell中,变量用于存储数据,而变量替换则是提取、修改或操作这些变量值的...

    shell替换文件中的文件路径脚本分享

    ### Shell替换文件中的文件路径脚本详解 #### 知识点概述 本文将详细介绍一个用于在Shell环境下替换文件中特定路径的脚本。该脚本主要用于自动化处理文件内容中的路径替换工作,尤其适用于大规模文件修改场景。...

    shell脚本修改json中某个字段的值

    在IT行业中,shell脚本是Linux/Unix系统中进行自动化任务处理的一种强大工具。当我们需要对JSON文件中的特定字段进行修改时,shell脚本结合awk和sed命令可以提供灵活且高效的解决方案。以下将详细介绍如何使用这些...

    unix--shell的一些特殊参数小结

    Unix Shell 提供了一系列特殊变量和参数,用于简化脚本编程中的常见任务。这些特殊参数包括但不限于 `$#`, `$-`, `$?`, `$$`, `$!`, `$@`, `$*` 以及 `$n` 等。它们各自具有独特的用途和应用场景,下面将逐一介绍。 ...

    shell脚本语言.pdf

    * Shell 函数参数是指在 Shell 中的函数参数 * Shell 函数参数可以用来传递参数给函数 Shell 输入输出重定向: * Shell 输入输出重定向是指在 Shell 中的输入输出操作 * Shell 输入输出重定向可以用来重定向输入...

    linux bash shell中文手册

    11. **参数 (PARAMETERS)**:讨论Shell中的变量,包括位置参数、特殊参数和预定义变量。 12. **扩展 (EXPANSION)**:讲解Shell如何扩展命令行输入,包括变量替换、通配符匹配、命令替换等。 12.7 **Word Splitting...

    java调用shell向DataX传递参数,where条件,包含特殊字符

    在实际操作中,这可能会涉及到字符串转义、参数安全传递以及shell命令的构建等多个技术点。 首先,我们需要理解DataX的工作原理。DataX作为一个数据同步框架,支持多种数据源,如Oracle、PostgreSQL等,并提供了...

    shell编程.doc(变量 用户定义变量,环境变量,位置变量(shell 参数) )

    Shell变量是编程的核心部分,包括用户定义变量、环境变量和位置变量(shell参数)。用户定义变量由`$`符号后跟变量名来引用,例如`myvar=value`。环境变量是可供子进程使用的全局变量,如`HOME`表示用户的主目录,`...

    shell编程入门经典--LINUX与UNIX Shell编程指南 (中文pdf版)

    1. **Shell变量**:包括环境变量、位置参数、特殊变量和用户自定义变量的声明与使用。 2. **命令替换和引用**:如何使用反引号、$()以及`echo`命令来获取命令的输出。 3. **流程控制**:讲解if、else、for、while...

    Linux Shell 编程实战.zip

    Shell是Linux的外壳,是Linux的用户界面, Shell为用户提供了输入命令和参数并可得到命令执行结果的环境。用户对Shell理解越深刻, Shell对用户工作的支持就越有力。可以说,熟练掌握Shell编程,能大大提高系统...

    Shell中的命令别名、命令历史和命令替换的方法

    ### Shell中的命令别名、命令历史和命令替换的方法 #### 一、命令别名 **命令别名**是在Shell环境中非常实用的一个特性,它允许用户为较长或常用的命令定义一个简短的名字。通过这种方式,可以简化命令行输入,...

    Shell 命令替换的两种方式

    在Shell脚本编程中,命令替换是一个非常实用的功能,它允许我们执行一个命令,并将它的输出作为另一个命令的参数。这种方式极大地增强了Shell脚本的灵活性和动态性。本文将详细介绍这两种命令替换的方法。 首先,...

    大括号在shell中的使用

    在Shell脚本编程中,大括号({})扮演着至关重要的角色,它们被广泛用于各种语法结构和操作。下面将详细介绍大括号在Shell中的主要用途。 1. **数组定义**:在Shell中,大括号用于定义数组。例如,创建一个包含三个...

    shell脚本编程02

    在shell脚本中,变量替换允许我们动态地修改和操作变量的值。这包括使用`$`符号来引用变量,以及使用各种替换运算符,如`${variable#pattern}`(删除匹配的最左边模式)和`${variable##pattern}`(删除所有匹配的最...

    linux_shell中文教程

    四、Shell参数和选项 Shell命令通常接受参数和选项,参数是命令操作的对象,而选项则改变命令的行为。例如,ls -l会以详细模式列出目录内容,-l就是选项。在脚本中,$0表示脚本名,$1、$2等表示传递给脚本的参数。 ...

    Linux与UNIX Shell编程指南.pdf

    Linux与UNIX Shell编程指南是计算机科学领域中一本经典的指南手册,旨在帮助读者快速掌握Linux与UNIX操作系统下的shell编程技术。下面是从该书中生成的相关知识点: 1. Shell概述 Shell是Linux与UNIX操作系统下的...

    LinuxShell编程全攻略

    位置参数是一种特殊的变量,它们是在调用Shell程序时,在命令行中按位置定义的参数。例如,命令行参数`./script.sh arg1 arg2`中的`arg1`和`arg2`分别对应脚本中的`$1`和`$2`。特别地,`$0`是脚本本身的名称。位置...

Global site tag (gtag.js) - Google Analytics