使用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脚本很少接触,也不知道格式以及它的规范,从这次项目一键部署的工作,让我学到了很多东西。让我成长了不少,每天都是一段旅行,沿途会遇到很多风景,
只要一点点把工作中遇到的问题记下来,对自己也是一个很大的提高。
使用shell脚本常见的一些问题的更多相关文章
- shell脚本常见错误
一.引言 想要学习使用shell脚本,却在开始的时候遇到很多不顺利,都是一些小细节的东西,所以在此记录一下. 二.各种细节问题 1.变量作为赋值对象时不需要添加$,取值时需要,也就是说,这个$就是取值 ...
- shell脚本常见错误一二三
1.$'\r': 未找到命令的解决 2.: 不是有效的标识符h: 3.cd "$path"/webapps/ROOT 不能正常进入ROOT文件夹,$path并未与后面的字符结合起来 ...
- shell脚本常见的结构化函数
if-then if command then command fi if-then-else if command then command else command fi 嵌套if if comm ...
- 【Shell脚本学习4】几种常见的Shell
上面提到过,Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把它们称作一种Shell.我们常说 ...
- shell脚本中常见的一些特殊符号和作用详解
这篇文章主要介绍了shell脚本中常见的一些特殊符号和它的作用详解,总结的很简洁,容易看懂,需要的朋友可以参考下 在编写Shell脚本时,我们需要会用到各种各样的特殊符号,通过这些特殊符号可以使我 ...
- 常见的if语句shell脚本
常见的if语句shell脚本 author :headsen chen 2017-10-17 15:00:07 1,cat if.sh 2, cat if2.sh
- shell脚本中字符串的常见操作及"command not found"报错处理(附源码)
简介 昨天在通过shell脚本实现一个功能的时候,由于对shell处理字符串的方法有些不熟悉导致花了不少时间也犯了很多错误,因此将昨日的一些错误记录下来,避免以后再犯. 字符串的定义与赋值 # 定义S ...
- 使用C#给Linux写Shell脚本
在这个逼格决定人格,鄙视链盛行的年头,尤其是咱们IT界,请问您今天鄙视与被鄙视的次数分别是多少?如果手中没有一点压箱的本事,那就只有看的份了.今天我们也要提升下自己的格调,学习些脑洞大开的东西,学完之 ...
- Shell脚本编程30分钟入门
Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_t ...
随机推荐
- 【洛谷P2387】魔法森林
题目大意:给定一个 N 个点,M 条边的无向图,边有两个边权 a, b,求从 1 号节点到 N 号节点路径的两个权值和的最大值最小是多少. 题解: 对于有两个属性的结构的最优化问题,可以考虑先按照其中 ...
- ogg12c 配置
环境:source 192.168.2.182 : 系统:Windows Server 2012 oracle: Release 12.1.0.2.0 ogg: 12.2.0.2.3 target 1 ...
- .NET Core 3时代如何转换.NET 4项目,DevExpress Winforms帮你忙!
DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.无论是Office风格的界面,还是分析处理大批量的业务数据,DevExpr ...
- 开启防火墙如何部署k8s
你可以不关闭防火墙,只需要开启这些端口就行了MASTER节点6443* Kubernetes API server 2379-2380 etcd server client API 10250 Kub ...
- jquery file选择器 语法
jquery file选择器 语法 作用::image 选择器选取类型为 file 的 <input> 元素.大理石平台检定规程 语法:$(":file") jquer ...
- jquery submit选择器 语法
jquery submit选择器 语法 作用::submit 选择器选取类型为 submit 的 <button> 和 <input> 元素.如果 <button> ...
- 2019牛客暑期多校训练营(第一场)H 线性基+计算贡献
题意 给n个整数,求满足子集异或和为0的子集大小之和. 分析 将问题转化为求每个元素的贡献次数之和. 先对n个数求线性基,设线性基大小为r,即插入线性基的数字个数为r,可以分别计算线性基内数的贡献和线 ...
- Codeforces 979 D. Kuro and GCD and XOR and SUM(异或和,01字典树)
Codeforces 979 D. Kuro and GCD and XOR and SUM 题目大意:有两种操作:①给一个数v,加入数组a中②给出三个数x,k,s:从当前数组a中找出一个数u满足 u ...
- Flutter文本框TextField
参数详解TextField同时也使用Text 的部分属性: 属性 作用controller 控制器,如同 Android View iddecoration 输入器装饰keyboardType 输入的 ...
- Location of Docker images in all Operating Systems (Linux, Windows, Redhat, Mac OS X)
原文:http://www.scmgalaxy.com/tutorials/location-of-dockers-images-in-all-operating-systems/ Location ...