zoukankan      html  css  js  c++  java
  • shell 冒号

    : ${TEST_LOOP:='1'}

    如果不在前面加上:(冒号)命令,那么就会把${TEST_LOOP:='1'}本身当做一个命令来执行,报错是肯定的。

    [root@node56 ~]# : abc=1234 
    [root@node56 ~]# echo $abc 

    [root@node56 ~]# : ${abc:=1234} 
    [root@node56 ~]# echo $abc    
    1234

    [root@node56 ~]# ${abc:=1234} 
    -bash: 1234: command not found

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

    1         : Read gave us ifname = $ifname
    2         read inet addr junk
    3         : Read gave us inet = $inet addr = $addr

    same as "#" to put the comments or comment out the codes  .
    advantage to use ": "  for multiple line comment out  .

    : '
    code1
    code2
    code3   
    '

    like C use "/* */" for comment out

    冒号(null command [colon])。

    空命令,这个命令什么都不做,但是有返回值,返回值为0(即:true)。这个命令的作用非常奇妙。

    1. 可做while死循环的条件;

    2. 在if分支中作为占位符(即某一分支什么都不做的时候);

    3. 放在必须要有两元操作的地方作为分隔符,如: ${username=`whoami`}

    4. 在参数替换中为字符串变量赋值,在重定向操作(>)中,把一个文件长度截断为0(:>>这样用的时候,目标存在则什么都不做),这个只能在普通文件中使用,不能在管道,符号链接和其他特殊文件中使用;

    5. 甚至你可以用来注释(#后的内容不会被检查,但:后的内容会被检查,如果有语句如果出现语法错误,则会报错);

    6. 你也可以作为域分隔符,比如环境变量$PATH中,或者passwd中,都有冒号的作为域分隔符的存在;

    7. 你也可以将冒号作为函数名,不过这个会将冒号的本来意义转变(如果你不小心作为函数名,你可以使用unset -f : 来取消function的定义)。

  • 相关阅读:
    (一)Redis初学教程之安装篇
    Redis常用数据类型
    css
    js常用内置对象、Dom对象、BOM对象
    CSS定位(postion)和移动(float)
    Razor模板引擎(C#版)语法
    虚拟化和反序列化
    id 自增------删除数据后恢复到删除前自增id
    SERVER全局数组
    文件路径操作
  • 原文地址:https://www.cnblogs.com/idyllcheung/p/10224933.html
Copyright © 2011-2022 走看看