使用shell脚本常见的一些问题

Jdk版本:jdk-8u102-linux-x64

Tomcat版本:apache-tomcat-7.0.92

Redis版本:redis-5.0.0

由于公司项目的需要,要在多台服务器上面部署一些应用,一个个来部署实在太麻烦了,所以就想到了用脚本部署,然后一点一点的记下来,好记性不如烂笔头

一.jdk脚本的编写

 

废话不多说,直接上脚本

#!/bin/bash
directory="/tests/test"
jdkname=$directory/jdk-8u181-linux-x64.tar.gz
if [ -f${jdkname}]
then
#判断是否已经安装
if [ $? -eq 0 ]
then
echo "已经安装JDK"
echo "当前JDK版本是"
java -version
exit 1
else
echo "开始解压jdk安装包"
tar zxvf $directory/jdk-8u181-linux-x64.tar.gz
#安装jdk
#配置环境变量
echo --提示:-------开始配置java环境变量!-------
echo "export JAVA_HOME=/java/jdk1.8.0.102" >> .profile
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> .profile
echo "export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar" >> .profile
source .profile
echo "查看jdk安装的版本"
java -version
echo --提示:-----java安装完毕---------
fi
else
echo "没有安装包,请先上传安装包"
exit 1
fi

以上就是jdk的安装部署脚本,以下是遇到的问题

问题一:在window上面编辑的脚本放到Linux上面去执行,出现如下错误

原因:

因为操作系统是windows,在windows下编辑的脚本,所以有可能有不可见字符。脚本文件是DOS格式的
即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.
1.第一种方法:在linux上面新建一个shell脚本,然后复制window脚本的内容
2.第二种方法: 利用dos2unix 脚本名称,然后回车,再次执行脚本即可

问题二:脚本定义的变量无法识别,原因是定义脚本变量

错误写法:directory = "/tests/test"

正确写法:directory="/tests/test"

shell脚本定义变量=号两边不能有空格

 二.总结

以前写shell脚本很少接触,也不知道格式以及它的规范,从这次项目一键部署的工作,让我学到了很多东西。让我成长了不少,每天都是一段旅行,沿途会遇到很多风景,

只要一点点把工作中遇到的问题记下来,对自己也是一个很大的提高。

posted @ 2019-06-27 17:11  笨鸟先飞,到达目的  阅读(327)  评论(0编辑  收藏  举报