[关闭]
@tsing1226 2017-05-24T08:25:45.000000Z 字数 1375 阅读 922

shell

Shell脚本书写

HBase 脚本流程:

usage="Usage: start-hbase.sh"        //脚本用法
bin=`dirname "${BASH_SOURCE-$0}"`    //把脚本所在目录赋予bin  
bin=`cd "$bin">/dev/null; pwd`      //校验bin的正确性  
. "$bin"/hbase-config.sh            //初始化hbase配置,设置全局环境变量--注2  

 start hbase daemons   

errCode=$?                     
    if [ $errCode -ne 0 ]        //不等于0
then  
  exit $errCode          
fi  
  
 if [ "$1" = "autorestart" ]
then
  commandToRun="autorestart"
else 
  commandToRun="start"
fi
##################################################
distMode=`$bin/hbase --config "$HBASE_CONF_DIR" org.apache.hadoop.hbase.util.HBaseConfTool hbase.cluster.distributed`  
//hbase.cluster.distributed  Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面。默认:false  

if [ "$distMode" == 'false' ]  
    then  
      "$bin"/hbase-daemon.sh start master    //包装hbase master,regionserver,zookeeper等服务从后台启动  
else  
  "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" start zookeeper  
  "$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" start master  
  "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \  
    --hosts "${HBASE_REGIONSERVERS}" start regionserver  
  "$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \  
   --hosts "${HBASE_BACKUP_MASTERS}" start master-backup  
fi  

注意
1)

 $# 是传给脚本的参数个数
 $0 是脚本本身的名字
 $1 是传递给该shell脚本的第一个参数
 $2 是传递给该shell脚本的第二个参数
 $@ 是传给脚本的所有参数的列表
 $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
 $$ 是脚本运行的当前进程ID号
 $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
 -ne 表示不等于。
 -ge大于等于。

2)
Linux 脚本前加“.   ”即“点+空格”,脚本执行结束后,脚本中的export命令影响全局环境变量。
3)字符串长度

  1. string="hello"
  2. echo ${#string}

4)提取子字符串

  1. string="runoob is a great site"
  2. echo ${string:1:4}
  3. 截取字符串的第一至第四个元素。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注