Linux 脚本编写
第一个shell脚本编写
#!/bin/bash
# 上面中的 #! 是一种约定标记, 它可以告诉系统这个脚本需要什么样的解释器来执行;
#定义变量:
APP_BASE_PATH="/opt/app"
#特殊变量:
$1 传递给脚本或者函数的第1个参数 $2 依次类推
NODE_NAME="$1"
OP="$2"
WARNAME="$3"
WARFILE="$4"
#使用变量
只需要在一个定义过的变量前面加上美元符号 $ 就可以了, 另外,对于变量的{} 是可以选择的, 它的目的为帮助解释器识别变量的边界.
SERVER_NAME="apache-tomcat-$NODE_NAME"
SERVER_DIR="$APP_BASE_PATH/$SERVER_NAME"
#将命令输出的值赋值给一个变量
directory=`pwd` #用反引号将命令引起来
echo $directory tId=`ps -ef|grep "${SERVER_DIR}/bin/bootstrap.jar"|grep -v "grep"|awk '{print $2}'` if语句 if[表达式] then 语句 fi if[表达式] then 语句 else 语句 fi 条件判断
if [ -z STRING ] “STRING” 的长度为零则为真。
if [ -z ${WARNAME} ]; then
echo "please specify war name!"
echo "Usage: ./tom.sh NODE_NAME -w WARNAME /path/to/file.war"
exit 0
fi
if [ ! -s ${WARFILE} ] 如果文件存在且大小不为0
then
echo "file not exist: [${WARFILE}]"
exit 0
fi
shell函数 shell函数必须先定义再使用
start() {
echo -n $"Starting $SERVER_NAME: "
tId=`ps -ef|grep "${SERVER_DIR}/bin/bootstrap.jar"|grep -v "grep"|awk '{print $2}'`
if [ ${tId:=0} -ne 0 ]
then
echo "failure: it's already startup,please stop first.[Failed]"
else
${SERVER_DIR}/bin/startup.sh
sleep 2
tId=`ps -ef|grep "${SERVER_DIR}/bin/bootstrap.jar"|grep -v "grep"|awk '{print $2}'`
if [ ${tId:=0 } -eq 0 ]
then
echo "failure: See details on ${SERVER_DIR}/logs/catalina.out. [Failed]"
else
echo "success [OK]"
fi
fi
}
注意:1. 调用函数只需要给出函数名,不需要加括号。
basename 命令用于创建基本文件名称
targetWar=`basename ${WARFILE}`
if [ "${targetWar%%.war*}" != "${WARNAME}" ]; then
echo "ERROR: Target file name must equles '${WARNAME}.war.*'"
echo " Please change file name and retry."
exit 0
else
echo "war file path: ${WARFILE}"
fi
${targetWar%%.war*} 把targetWar变量的值删掉匹配.war*的后缀的值
Linux 脚本编写的更多相关文章
- Linux 脚本编写基础
txt去重 http://man.linuxde.net/sort Linux 脚本编写基础 http://www.cnblogs.com/linn/archive/2007/03/05/664 ...
- linux 脚本编写基础(一)
1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在 ...
- shell脚本编写笔记
包含转载内容,转载自http://wenku.baidu.com/link?url=jtCHxEYzgGve6P64U3JRQRgU6nhpGvqFLLpWu9I2Htq6hi9TGLudRFkk7r ...
- Linux脚本入门(1)
1. Linux 脚本编写基础1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例 ...
- shell 脚本编写基础
在进行Linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称,运行时只要键入 ./smartzip就能运行脚本了.. 每行 ...
- 在ubuntu linux 中编写一个自己的python脚本
在ubuntu linux 中编写一个自己的简单的bash脚本. 实现功能:终端中输入简单的命令(以pmpy为例(play music python),为了区别之前说的bash脚本添加了py后缀),来 ...
- 在ubuntu linux 中编写一个自己的bash脚本
在ubuntu linux 中编写一个自己的简单的bash脚本. 实现功能:终端中输入简单的命令(以pm为例(play music)),来实现音乐的播放.注:本人ununut中安装了audacious ...
- Linux shell编写脚本部署pxe网络装机
Linux shell编写脚本部署pxe网络装机 人工安装配置,Linux PXE无人值守网络装机 https://www.cnblogs.com/yuzly/p/10582254.html 脚本实 ...
- Linux 用脚本编写搭建yum本地仓库
Linux 用脚本编写搭建yum本地仓库 源码如下: #!/bin/bash #该脚本用于自动化搭建本地yum仓库 #挂载光盘 #作者:雨中落叶 #博客:https://www.cnblogs.com ...
随机推荐
- 系统管理命令之logname
logname命令,可以显示自己初次登录到系统中的用户名,主要识别sudo前后情形,与whoami相反. 1.查看该命令的帮助信息. # logname --help 2.查看该命令的版本信息. # ...
- 2016ACM/ICPC亚洲区沈阳站 Solution
A - Thickest Burger 水. #include <bits/stdc++.h> using namespace std; int t; int a, b; int main ...
- oracle中 start with .. connect by prior.. 用法简介
我们经常会将一个比较复杂的目录树存储到一个表中.或者将一些部门存储到一个表中,而这些部门互相有隶属关系.这个时候你就会用到connect by prior start with.oracle 提供了s ...
- Vim 操作命令不完全汇总
.命令:"重复上次修改": x命令:删除光标下的字符: u命令:撤销上次修改: dd命令:删除整行: >G命令:增加从当前行到文档末尾处的层级缩进: $命令:把光标移至行尾: ...
- Codeforces Round #390 (Div. 2) C. Vladik and chat(dp)
http://codeforces.com/contest/754/problem/C C. Vladik and chat time limit per test 2 seconds memory ...
- redis的过期策略以及内存淘汰机制
redis采用的是定期删除+惰性删除策略. 为什么不用定时删除策略? 定时删除,用一个定时器来负责监视key,过期则自动删除.虽然内存及时释放,但是十分消耗CPU资源.在大并发请求下,CPU要将时间应 ...
- 【源码学习之spark streaming 1.6.1 】
说明:个人原创,转载请说明出处 http://www.cnblogs.com/piaolingzxh/p/5634577.html 未完待续
- javascript之反柯里化(uncurrying)
在JavaScript中,当我们调用对象的某个方法时,其实不用去关心该对象原本是否被设计为拥有这个方法,这是动态类型语言的特点.可以通过反柯里化(uncurrying)函数实现,让一个对象去借用一个原 ...
- oracle10g连接自动断开,报ORA-03135错误
问题描述: oracle使用过一段时间,连接断开,报ORA-03135错误. 问题挖掘: 用pl/sql和sqlplus连接oracle,也存在该问题,确定该问题与连接方式无关. 查看服务器,发现没有 ...
- 也来说说C#异步委托 (转自 Rising_Sun)
前些日子,看到园子里面有人用老王喝茶的例子讲解了一下同步和异步,虽然没有代码实现,但是能够通俗易懂的讲解了同步.异步.阻塞.非阻塞的关系了,今天借题发挥,用一个热水器加热洗澡的例子来具体演示一下C#使 ...