shell脚本写法(以zookeeper启动终止脚本为例)

1.在/bin目录下建立想要的脚本文件,以zookeeper为例

 

[qurui@hadoop102 ~]$ cd /bin #进入目录
[qurui@hadoop102 ~]$ sudo vim zk.sh #打开文件,sudo是提高命令权限

 2.zookeeper脚本语句解释

#!/bin/bash   #固定,表明执行的解释器。
case $1 in    #case判断语句:启动、终止、状态。
"start"){      #启动
for i in hadoop102 hadoop103 hadoop104 #遍历集群机器
do
echo "------------$i---------------" #打印集群机器名
ssh $i /opt/module/zookeeper/bin/zkServer.sh start
done #ssh免密登录+启动执行语句(需要提前配置免密)
};;
"stop"){       #终止
for i in hadoop102 hadoop103 hadoop104
do
echo "------------$i---------------"
ssh $i /opt/module/zookeeper/bin/zkServer.sh stop
done #ssh免密登录+终止执行语句(需要提前配置免密)
};;
"status"){     #状态
for i in hadoop102 hadoop103 hadoop104
do
echo "------------$i---------------"
ssh $i /opt/module/zookeeper/bin/zkServer.sh status
done #ssh免密登录+状态执行语句(需要提前配置免密)
};;
esac

3.修改脚本权限

[qurui@hadoop102 bin]$ sudo chmod 777 zk.sh #777(-R)代表权限放开给所有人,或者u(属主),g(属组),o(其它)+r(读),w(写),x(执行)。

4.执行zookeeper脚本

[qurui@hadoop102 bin]$ zk.sh start

shell脚本写法(以zookeeper启动终止脚本为例)_第1张图片

5.下面给一些shell脚本的写作基础知识:

1.基础运算符

(1)“$((运算式))”或“$[运算式]”

(2)expr  + , - , \*,  /,  %    加,减,乘,除,取余(注意:expr运算符间要有空格

2.条件判断

[ condition ](注意condition前后要有空格

注意:条件非空即为true[ atguigu ]返回true[] 返回false

常用判断条件:

(1)两个整数之间比较

= 字符串比较

-lt 小于(less than)                 -le 小于等于(less equal)

-eq 等于(equal)                           -gt 大于(greater than)

-ge 大于等于(greater equal)  -ne 不等于(Not equal)

(2)按照文件权限进行判断

-r 有读的权限(read)                    -w 有写的权限(write)

-x 有执行的权限(execute)

(3)按照文件类型进行判断

-f 文件存在并且是一个常规的文件(file)

-e 文件存在(existence)         -d 文件存在并是一个目录(directory)

3.if判断

if  [ 条件判断式 ]

then

  程序

fi

或者

if  [ 条件判断式 ]

  then

    程序

elif  [ 条件判断式 ]

       then

              程序

else

       程序

fi

       注意事项:

1[ 条件判断式 ],中括号和条件判断式之间必须有空格

2if后要有空格

4.case 语句

case $变量名 in

  "值1")

    如果变量的值等于值1,则执行程序1

    ;;

  "值2")

    如果变量的值等于值2,则执行程序2

    ;;

  …省略其他分支…

  *)

    如果变量的值都不是以上的值,则执行此程序

    ;;

esac

注意事项:

  1. case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
  2. 双分号“;;”表示命令序列结束,相当于java中的break
  3. 最后的“*)”表示默认模式,相当于java中的default*不可以加双引号。

5.for 循环 

for ((初始值;循环控制条件;变量变化))

  do

    程序

  done

或者

for 变量 in 值1 值2 值3…

  do

    程序

  done

6.while 循环

while  [ 条件判断式 ]

  do

    程序

  done

注意事项:

while后面需要有空格

你可能感兴趣的:(大数据,大数据,hadoop,zookeeper)