shell中的特殊符号

一、shell中的":"

实际案例:hbase脚本中一段===>

# For releases, add hbase & webapps to CLASSPATH
# Webapps must come first else it messes up Jetty
if [ -d "$HBASE_HOME/hbase-webapps" ]; then
  CLASSPATH=${CLASSPATH}:$HBASE_HOME
fi
if [ -d "$HBASE_HOME/target/hbase-webapps" ]; then
  CLASSPATH="${CLASSPATH}:${HBASE_HOME}/target"
fi
for f in $HBASE_HOME/hbase*.jar; do
  if [[ $f = *sources.jar ]]
  then
    : # Skip sources.jar
  elif [ -f $f ]
  then
    CLASSPATH=${CLASSPATH}:$f;
  fi
done

最近在看《Linux程序设计(第三版)》
看到42页,“:”命令
“:”是一个空命令,while true等同于 while
但是下面它举的这个例子就看不懂了,原文如下:
---------------------------------------------------------------------------
:结构也会被用在变量的条件设置中,例如:                    //“变量的条件设置”,啥意思啊?
 : ${var:=value}                                                    //这句话看不懂,不知道在干啥
  如果没有:,shell将试图把$var当作一条命令来处理             //这句话如何理解,也不知道啊,${} 这是什么结构啊

chinaunix答:

发表于 2007-12-04 15:16:47 |只看该作者

:是null command,就是不做任何事情,
: ${var:=value}是把${var:=value}作为:命令的参数,
没有 :的话,shell会把${var:=value}当命令来处理,所有要报错

在Unix.Shell编程(第三版).pdf 这个里 第12章有详细介绍

原文地址:https://www.cnblogs.com/itcomputer/p/4702706.html