Shell中变量的替换

1、如果var未定义,返回word,否则,返回var的值

syntax:

       ${var:-123}

example:

        echo ${a:-123}


2、如果var未定义,返回word并将其赋值给var,否则返回var的值

syntax:

       ${var:=word}

example:

        echo ${b:=123}


3、如果var未定义,将message打印到标准错误输出;否则返回var的值。注意,在shell程序中,如果var未定义,还会退出脚本。

syntax:

      ${var:?message}

example:

    echo ${c:?Warning:variable undefined}  


4、如果var定义过,则使用word替换该值;否则啥也不干。

 syntax:

       ${d:+word}

example:


5、从变量中提取字符串,提取从下标为offset的字符开始长度为length的字符串

 syntax:

       ${var:offset:length}

example:


6、输出变量的字符数量

 syntax:

       ${#var}

7、从var的开头去掉与pattern匹配的部分;#与##的区别在于前者是最短匹配,后者为最长匹配

 syntax:

       ${var#pattern}

       ${var##pattern}

       "#pattern"为最短匹配

       “##pattern”为最长匹配

        匹配符: shell中的通配符,常用*、?

example:

通配符"?"匹配一个任意字符


8、从var的尾部去掉与pattern匹配的部分,%与%%的区别在于前者是最短匹配,后者为最长匹配

 syntax:

       ${var%pattern}

       ${var%%pattern}

       "%pattern"为最短匹配

       “%%pattern”为最长匹配

        匹配符: shell中的通配符,常用*、?

example:


9、进行变量值的替换,将于pattern匹配的部分用string进行替换。/与//的区别在于前者替换第一个出现的pattern,后者替换全部pattern

 syntax:

       ${var/pattern/string}

       ${var//pattern/string}

example:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容