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答:
:是null command,就是不做任何事情,
: ${var:=value}是把${var:=value}作为:命令的参数,
没有 :的话,shell会把${var:=value}当命令来处理,所有要报错
在Unix.Shell编程(第三版).pdf 这个里 第12章有详细介绍