栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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)[ 条件判断式 ],中括号和条件判断式之间必须有空格

(2)if后要有空格

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后面需要有空格

暑期编程PK赛 得CSDN机械键盘等精美礼品!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016229.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号