背景

由于在工作中需要一次性关闭linux的opt目录下安装的多个tomcat,因此有了写一个脚本统一关闭开启这个目录下所有tomcat的想法

前提

Tomcat安装目录结构:  /opt/tomcat/tomcat_8080;/opt/tomcat/tomcat_9080……

思路

循环调用tomcat自身bin目录下的startup.sh、shutdown.sh开启或是关闭tomcat服务

脚本 TomCtrol.sh

#! /bin/sh

#定义批量处理端口

p=(4080 7080)

#开启或关闭tomcat服务器

startOrCloseTomcat(){

if [ $1 = -s ] ;  then           #执行开启命令

foreachStartup

elif [ $1 = -c ]                   #执行关闭命令

then

foreachShutdown

else

echo "参数不正确!请重新输入!"

exit #退出该函数

fi

}

#循环开启tomcat

foreachStartup(){

for port in ${p[@]}

do

s_res=`/opt/tomcat/*tomcat*$port/bin/startup.sh`

echo "$port-tomcat已经开启!"

done

}

#循环关闭tomcat

foreachShutdown(){

for port in ${p[@]}

do

s_res=`/opt/tomcat/*tomcat*$port/bin/shutdown.sh`

echo "$port-tomcat已经关闭!"

done

}

if [ $# -eq 0 ]

then

echo "请输入执行参数"

echo " -s  启动所有/opt/tomcat/下的tomcat"

echo " -c  关闭所有/opt/tomcat/下的tomcat"

else

#echo "start repari .."

startOrCloseTomcat $1

fi

关于shell脚本中分号(;)——命令分割符 的使用说明

首先先看几种写法,这里用if语句作为例子。

第一种

test(){

if [ 1 -eq 1 ]; then

echo "1=1"

else

echo "1!=1"

fi

}

第二种

test1(){

if [ 1 -eq 1 ]

then  echo "1=1"

else  echo "1!=1"

fi

}

第三种

test2(){ if [ 1 -eq 1 ] ; then echo "1=1" ; else echo "1!=1" ; fi }

由此可见分号是用来隔断每个语法关键字或命令的 。对于字符的比较及其他shell语法关键字之间分号的使用方式相同。需要知道的是在不同的语法命令之间要用分号隔开或是换行方能执行,否则将会在调用脚本的时候报错。

补充

if语句后的表达式比较变量要与比较操作符用空格分开。if [ 1 -eq 1 ]不能写成if[ 1 -eq 1 ] 、if [1 -eq 1 ]、if [ 1 -eq 1]、if [ 1-eq1 ]

shell中用arrary=(arr1 arr2 arr3 ……) 的方式声明数组

访问数组时使用${arrary[@]}访问整个数组 ,使用${p[index]}访问数组中的某个特定的值

变量赋值时变量名跟等号之间不能有空格

$# ——传给shell程序的位置参数个数;$0 ——脚本名称;$? ——最后命令的完成码或在shell程序内所执行的shell程序;$n (n>0)——获取传递的第n个参数

cd /opt/tomcat/tomcat*0     * 号代表匹配0..n个字符;cd /opt/tomcat/to?cat   ? 号代表匹配1个字符

shell以分号结尾_一个shell脚本引发的对于分号的使用说明相关推荐

  1. abd shell关闭所有程序_一个 Shell 脚本逆袭的规范,拿走不谢

    指定一个默认脚本解释器 "#!" 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell.他指明了当我们没有指定解释器的时候默认的解释器. 为什么建议要在 ...

  2. shell 做加法运算_使用shell脚本实现加法乘法运算

    编写一个shell脚本,实现加法和乘法运算. #!/bin/bash #Function:num1+num2 num3*num4 sum(){ read -p "please key in ...

  3. 4-1:shell编程之编写第一个shell脚本

    文章目录 一:什么是shell脚本 二:如何编写shell脚本 (1)脚本文件的格式 (2)可执行权限 (3)执行脚本 三:第一个shell脚本 (1)基本结构 (2)变量和常量 A:创建变量和常量 ...

  4. Linux Shell 之 我的第一个Shell程序

    这里我首先会介绍一个Shell是什么,再介绍我的第一个Shell程序和从中总结的经验. 一.Shell是什么 在说我的这个Shell程序之前,还是先跟大家说说什么是Shell吧,相信Shell这个词大 ...

  5. sample等价是什么错误_一个复制粘贴引发的有趣小错误及思考

     今天是生信星球陪你的第481天 大神一句话,菜鸟跑半年.我不是大神,但我可以缩短你走弯路的半年~ 就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~ 这里有豆豆和花花的学习历程,从新 ...

  6. shell 获取 mysql 行数_一个Shell小脚本精准统计Mysql每张表的行数实现

    前言 对于开发或者运维人员来说,Mysql数据库每张表的数量肯定是要了解下,有助于我们清理无用数据或者了解哪张表比较占用空间. 另外多次统计表的行数,还能发现Mysql表的增量情况,能够预测表未来会有 ...

  7. shell字段拼接日期_通过shell脚本获取日期,并赋给变量(转)

    通过shell获取当前8位日期,并赋给变量,并且使用变量作为文件名,建立文件夹 代码如下: ls_date=`date +%Y%m%d` mkdir ${ls_date} 上面两句代码虽然简单 但是在 ...

  8. shell 引号 解析 逗号_关于shell的单引号和双引号转义 以及特殊符号相关

    关于shell的单引号和双引号转义 以及特殊符号相关 20140603 Chenxin shell转义,单引号与双引号,反撇号 1.转义 单引号和双引号都能关闭shell对特殊字符的处理. 不同的是, ...

  9. python shell的无法保存_关于shell:如何保存Python交互式会话?

    我发现自己经常使用Python的解释器来处理数据库,文件等-基本上是半结构化数据的许多手动格式化.我没有按我想的那样适当地保存和清理有用的位.有没有一种方法可以将我的输入保存到外壳中(数据库连接,变量 ...

最新文章

  1. Windows 搭建ASP.NET Boilerplate项目开发环境
  2. 团队Blog功能改进
  3. java venus_来认识一下venus-init——一个让你仅需一个命令开始Java开发的命令行工具...
  4. Windows 任务管理器中的几个内存概念
  5. Python爬虫开发:cookie的使用案例
  6. 分布式ID-雪花算法
  7. execve系统调用_张凯捷—系统调用分析(3) (基于最新Linux5.0版本系统调用日志收集系统)...
  8. WEB服务器 - Apache、Nnginx、Lighttpd的比较和择优(转)
  9. 114. 二叉树展开为链表 golang
  10. 大数据可视化技术的作用有哪些
  11. cmd下运行Oracle清屏命令
  12. 杨校老师课堂之Hadoop环境搭建(一)
  13. 油猴(Tampermonkey)使用教程
  14. Process finished with exit code -1073740791 (0xC0000409)
  15. unity Maya中模型动画可能存在的问题总结
  16. vue与C#实现自定义表单审批流程构建-后端
  17. 二十四节气-大寒海报、文案分享。冬寒终有尽,春暖海先觉。
  18. 编写一个应用程序:输入长方形的长度、宽度,计算长方形的周长、面积并输出:
  19. 集合的使用——超市购物小票案例
  20. MouseManager

热门文章

  1. java获取当前request_java如何在一个普通的类中获取request对象
  2. 用Python-turtle库作图可以画出哪些漂亮的树?
  3. js文件下载 (url下载,监听进度)视频下载、图片下载、apk下载
  4. numpy中array的行数和列数
  5. linux图像查看软件下载,Linux 如何用 CLI 图像查看器来在终端上查看图像?
  6. vue2 + vuex 高度还原 饿了么 App,与官方后台真实数据交互,获取商品信息,实现登陆、购物车、下单等功能...
  7. AUV光源优化方法+水下图像增强方法
  8. 支付宝要做中国版Amazon Go 开无人超市?
  9. python serial模块
  10. VMWare安装苹果Mac OS系统的方法