精华内容
下载资源
问答
  • 有关shell冒号的特殊用法,供朋友们参考
  • shell 冒号经典使用

    千次阅读 2014-06-12 23:21:03
    ll 冒号减号 缺省值(:-) 如果变量后面跟着冒号和减号,则变量后面跟着是这个变量的缺省值。 $ COMPANY= $ printf “%s/n” “${COMPANY:-Unknown Company}” Unknown Company 变量的...

    缺省值(:-

    如果变量后面跟着冒号和减号,则变量后面跟着是这个变量的缺省值。

    $ COMPANY=

    $ printf “%s/n” “${COMPANY:-Unknown Company}”

    Unknown Company

    变量的实际值可以保持不变。

    冒号也可以省略掉不用:

    $ COMPANY=

    $ printf “%s/n” “${COMPANY-Nightlight Inc.}”

    $

    指定缺省值(:=

    如果变量后面跟着冒号和等号,则给空变量指定一个缺省值。

    $ printf “%s/n” “${COMPANY:=Nightlight Inc.}”

    Nightlight Inc.

    $ printf “%s/n” “$COMPANY”

    Nightlight Inc.

    变量的实际值已经改变了。

    去除冒号,则不会指定缺省值。

    变量是否存在检查(:?

    如果变量后面跟着冒号和问号,则根据变量是否存在,显示不同的信息。信息不是必选的。

    printf “Company is %s/n” /

    ${COMPANY:?Error: Company has notbeen defined—aborting}”

    如果没有冒号则不会进行检查。

    覆盖缺省值(:+)

    如果变量后面跟着冒号和加号,则加好后面的字符串替换默认字符串。

    $ COMPANY=”Nightlight Inc.”

    $ printf “%s/n” “${COMPANY:+Company has been overridden}”

    Company has been overridden

    如果没有冒号,变量也被字符串所替换,变量本身的值不改变。

    替换部分字符串(:n

    如果变量后面跟着一个冒号和数字,则返回该数字开始的一个子字符串,如果后面还跟着一个冒号和数字。则第一个数字表示开始的字符,后面数字表示字符的长度。

    $ printf “%s/n” “${COMPANY:5}”

    light Inc.

    $ printf “%s/n” “${COMPANY:5:5}”

    light

    根据模板删除字串(% # %% ##

    如果变量后面跟着井号,则返回匹配模板被删除后的字串。一个井号为最小可能性的匹配,两个井号为自大可能性的匹配。表达式返回模板右边的字符。

    $ printf “%s/n” “${COMPANY#Ni*}”

    ghtlight Inc.

    $ printf “%s/n” “${COMPANY##Ni*}”

    $ printf “%s/n” “${COMPANY##*t}”

    Inc.

    $ printf “%s/n” “${COMPANY#*t}”

    light Inc.

    使用百分号,表达式返回模板左边的字符

    $ printf “%s/n” “${COMPANY%t*}”

    Nightligh

    $ printf “%s/n” “${COMPANY%%t*}”

    Nigh

    (在我的Linux系统中上述命令不起取用)

    使用模板进行子字符串的替换(//

    如果变量后只有一个斜杠,则两个斜杠中间的字符串是要被替换的字符串,而第二个斜杠后面的字符串是要替换的字符串。如果变量后面跟着两个斜杠,则所有出现在两个斜杠中间的字符都要被替换为最后一个斜杠后面的字符。

    $ printf “%s/n” “${COMPANY/Inc./Incorporated}”

    Nightlight Incorporated

    $ printf “You are the I in %s” “${COMPANY//i/I}”

    You are the I in NIghtlIght Inc.

    如果模板一#号开始,则匹配以模板开始的字符,如果模板以%号结尾,则匹配以模板结尾的字符。

    $ COMPANY=”NightLight Night Lighting Inc.”

    $ printf “%s/n” “$COMPANY”

    NightLight Night Lighting Inc.

    $ printf “%s” “${COMPANY//Night/NIGHT}”

    NIGHTLight NIGHT Lighting Inc.

    $ printf “%s” “${COMPANY//#Night/NIGHT}”

    NIGHTLight Night Lighting Inc.

    (我的Linux中这个不起作用)

    如果没有指定新的值,则匹配的字符会被删除。

    $ COMPANY=”Nightlight Inc.”

    $ printf “%s/n” “${COMPANY/light}”

    Night Inc.

    也可以使用范围符号。例如:删除所有字符串中的标点符号,使用范围[:punct:]

    $ printf “%s” “${COMPANY//[[:punct:]]}”

    Nightlight Inc

    使用星号或@符号替换变量会替换外壳脚本中所有的参数,同样,在数组中使用星号或@符号也会替换数组中的所有元素

    展开全文
  • shell冒号用法

    千次阅读 2016-10-17 17:24:06
    冒号在Linux中是一个空命令,可以认为与shell的内建命令true相同,它的返回值是0.在while循环中 while : 与 while true 的作用是等效的 在 if/then 中可作为占位符if conditionsthen: #什么都不做elsetake action ...

    冒号在Linux中是一个空命令,可以认为与shell的内建命令true相同,它的返回值是0.
    在while循环中 while : 与 while true 的作用是等效的
    在 if/then 中可作为占位符

    if conditions
    then#什么都不做
    else
    take action 
    fi

    使用冒号还可以用作注释行的开始,但是如果有语法错误,仍将报错,这一点与使用#号不同

    展开全文
  • 前言 本文主要是参考了鸟哥写的...Shell冒号在变量赋值时的各种特殊用法 变量设定方式 str变量没有设定时 str为空字符串时 str已经设定为非空字符串时 var=${str-expr} var=expr var="" var=$str var...

    前言

    • 本文主要是参考了鸟哥写的《鸟哥的Linux私房菜》。因为总是在各种脚本中见到:-的用法而只是了解其大概含义,所以翻阅了相关资料,编写此博文以作记录

    Shell中冒号在变量赋值时的各种特殊用法

    变量设定方式str变量没有设定时str为空字符串时str已经设定为非空字符串时
    var=${str-expr}var=exprvar=""var=$str
    var=${str:-expr}var=exprvar=exprvar=$str
    var=${str+expr}var=""var=exprvar=expr
    var=${str:+expr}var=""var=""var=expr
    var=${str=expr}str=expr
    var=expr
    str 不变
    var=""
    str 不变
    var=$str
    var=${str:=expr}str=expr
    var=expr
    str=expr
    var=expr
    str 不变
    var=$str
    var=${str?expr}expr 输出至 stderrvar=""var=$str
    var=${str:?expr}expr 输出至 stderrexpr 输出至 stderrvar=$str

    End~

    展开全文
  • 有关shell冒号的特殊用法,供朋友们参考。 : ${VAR:=DEFAULT} 当变量VAR没有声明或者为NULL时,将VAR设置为默认值DEFAULT。如果不在前面加上:命令,那么就会把${VAR:=DEFAULT}本身当做一个命令来执行,报错是...

    有关shell中冒号的特殊用法,供朋友们参考。
    : ${VAR:=DEFAULT}
    当变量VAR没有声明或者为NULL时,将VAR设置为默认值DEFAULT。如果不在前面加上:命令,那么就会把${VAR:=DEFAULT}本身当做一个命令来执行,报错是肯定的。

    空命令[冒号]. 这个命令意思是空操作(即什么操作也不做). 它一般被认为是和shell的内建命令true是一样的。冒号":" 命令是Bash自身内建的, 它的退出状态码是真(即0)。

     

     

    ${VAR:=DEFAULT}

    变量替换

    鸟哥一书中

    此处只是省略了var,所以返回expr

    ${var:=word} 如果var为空或者未设定,返回word,且var=word

     

    转载于:https://www.cnblogs.com/idyllcheung/p/11389223.html

    展开全文
  • 冒号是bash shell中一个内建命令,有多种用法 1、空命令,返回永真 就是什么也不做,所以返回码永远都是0。 (1)用于循环条件中表示永真 #!/bin/bash i=0 while : do if ((i >= 10)) then break fi ...
  • linux 冒号用法

    2017-11-30 14:29:00
    冒号在Linux中是一个空命令,可以认为与shell的内建命令true相同,它的返回值是0.在while循环中 while : 与 while true 的作用是等效的在 if/then 中可作为占位符 if conditions then: #什么都不做 else take ...
  • shell getopts 用法

    2021-03-04 10:31:04
    shell getopts 用法 c语言里面有个getopt_long,可以获取用户在命令下的参数,然后根据参数进行不同的提示或者不同的执行。 在shell中同样有这样的函数或者用法吧,在shell里面是getopts,也有一个getopt是一个...
  • A = [1 2 3; 4 5 6; 7 8 9] A(:,:,2) = [10 11 12; 13 14 15; 16 17 18]
  • Liunx Shell常见用法

    2018-01-12 16:50:14
    2 冒号使用示例:{str:=expr} 如果变量str不为空,${str:=expr}就等于str的值,若str为空,就把expr的值赋值给str。 shell冒号相当于SQL的isnull()。3 basename 去掉文件名的目录和后缀示例一 [root@web ~]# ...
  • 【Bash百宝箱】shell内建命令之冒号

    千次阅读 2016-09-19 20:29:14
    shell中,冒号“:”是一个内建(builtin)命令,格式如下:: [arguments]冒号命令本身没什么副作用,使用场景有限,一般用于参数扩展,有以下几种用法:${parameter:-word} 如果parameter没有设置或者为空,替换为...
  • Makefile文件的目标项冒号后的另起一行的代码才是shell代码 shell不允许‘=’号两边有空格哦 makefile允许变量赋值时,'='号两边留空格 xx=$(shell 这里的代码也是shell代码) Makefile中的shell,每一行是一个...
  • shell getopts用法

    2019-09-25 03:13:21
    getopts的使用形式:getopts OPTION_STRING VAR; OPTION_STRING:-u,-p这种自定义选项; 脚本中$OPTARG,就是tom、123456自定义选项后的参数 参数后应接冒号“:”; 测试代码: #!/bin/bash # while ...
  • shell getopt 用法

    2013-11-18 19:43:16
    原文地址 ... ...shell getopt 用法 2010-03-25 20:54 5534人阅读 评论(2) 收藏 举报 shelldateunixstringfileparameters 获取UNIX类型的选项:  unix有一个优点就是标
  • shell getopts用法详解

    万次阅读 2015-05-28 15:59:38
    获取UNIX类型的选项: ... 如果在执行Shell程序也采用上述格式,Bourne Shell中提供了一条获取和处理命令行选项的语句,即getopts语句。该语句的格式为:  getopts option_string variable

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,359
精华内容 14,143
关键字:

shell冒号用法