zoukankan      html  css  js  c++  java
  • shell中冒号 : 用途说明

    我们知道,在Linux系统中,冒号(:)常用来做路径的分隔符(PATH),数据字段的分隔符(/etc/passwd)等。其实,冒号(:)在Bash中也是一个内建命令,它啥也不做,是个空命令、只起到占一个位置的作用,但有时候确实需要它。当然,它也有它的用途的,否则没必要存在。在·Linux的帮助页中说它除了参数扩展和重定向之外不产生任何作用。

    man :
    No effect; the command does nothing beyond expanding arguments and performing any specified redirections. A zero exit code is returned.

    常用参数

    啥也不做,只起到占位符的作用。比如在编写脚本的过程中,某些语法结构需要多个部分组成,但开始阶段并没有想好或完成相应的代码,这时就可以用:来做占位符,否则执行时就会报错。

    Bash代码

    if [ "today" == "2011-08-29" ]; then  
        :  
    else  
        :  
    fi  
    

    写代码注释

    单行注释

    : your comment here

    # your comment here

    多行注释

    : 'comment line1
    comment line2
    more comments'
    

    清空文件file的内容

    : >file
    >file
    

    默认参数

    : ${VAR:=DEFAULT}
    

    当变量VAR没有声明或者为NULL时,将VAR设置为默认值DEFAULT。如果不在前面加上:命令,那么就会把${VAR:=DEFAULT}本身当做一个命令来执行,报错是肯定的。

    使用示例

    示例一 参数扩展

    [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
    [root@node56 ~]#
    

    示例二 清空文件

    [root@node56 ~]# cat <<<"Hello" >123.txt 
    [root@node56 ~]# cat 123.txt 
    Hello
    [root@node56 ~]# : >123.txt 
    [root@node56 ~]# cat 123.txt 
    [root@node56 ~]#
    




    转载自 我使用过的Linux命令之:(冒号) - 啥也不做(除了……)

  • 相关阅读:
    hadoop2.7的目录结构
    ubuntu16.04上Eclipse和hadoop配置
    ubuntu16.04更改源为阿里源
    ubuntu16.04搭建hadoop集群环境
    ubuntu自动登录tty1(shell,text)配置
    Android六大基本布局
    java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.bjsxt.mapper.PeopleMapper
    storm_分组策略
    storm_常用命令
    Storm集群搭建
  • 原文地址:https://www.cnblogs.com/nowgood/p/shellmaohao.html
Copyright © 2011-2022 走看看