nexus启动脚本---第一个shell脚本

wacsdn 2011-08-12

研究maven有一阵子了,镜像仓库nexus也早已搭建起来,之前在公司是搭建在server上面,所以也不用频繁的去启动nexus。但是现在在家里想要搭建一个nexus,每次开机都要去启动nexus,搞的比较烦,正好在学习linux,所以就用shell写了一个小小的启动脚本,因为是写的第一个shell脚本,所以写下来,以示纪念。

虽然很简单,因为是第一次写,还是费了比较长的时间。

下面就将出错的地方标示出来,以提醒自己吧。

#!/bin/bash

echo"nexusverify.."

testing8081=`(netstat-an|grep8081)`-----这儿是`不是单引号',因为是可执行的脚本,所以必须是`号(就是数字键1左边,Tab键上面那个按键)

if["NULL$testing8081"="NULL"];then-------shell中的相等判断是用“=”而不是“==”,注意在“=”前后要留出空格,我就是在这儿卡了半天

echo"nuxuswillbestarting..."

/home/sdh/maven/Nexus/nexus-oss-webapp-1.9.0.2/bin/jsw/linux-x86-32/nexusstart

else

echo"nexushadstarted.."

fi

附:单引号(')双引号(")及quote(`)的区别

单引号('):我的理解就是强引用了,在单引号中的都被解释为普通的字符

双引号("):应该就是弱引用了,双引号中的内容,如果为变量,则会继续解析变量值的

quote(`):是可执行命令,``中的字符是按可行性命令来解析的

如:

[sdh@localhost~]$name=sdh

[sdh@localhost~]$echo"$name"

sdh----name作为变量来解析

[sdh@localhost~]$echo'$name'

$name----直接将name变量解析为普通字符串

[sdh@localhost~]$echo`ls`-----ls是作为普通的命令来执行的

androidDevandroid_sourcebineclipse.loghs_err_pid10060.loghs_err_pid3807.loghs_err_pid8651.logjavamavenMongoDBseamDevthunderworkspace公共的模板视频图片文档下载音乐桌面

[sdh@localhost~]$

而且一般来说,在一串命令当中,被``修饰的是最先执行的。

再一个就是=的赋值运算,在一般的shell中,如果是作赋值运算,则"="左右不能有空格,如果是做验证判断的话,则必须有空格。

改良版的内容

#!/bin/bash
#this is a script foe nexus start,if the nexus is startting,return.
echo "nexus verify.."
testing8081=`(netstat -an|grep 8081)`
if [ "NULL$testing8081" = "NULL" ] ; then
	echo "nuxus starting..."
	/home/sdh/maven/Nexus/nexus-oss-webapp-1.9.0.2/bin/jsw/linux-x86-32/nexus start
       else
	echo -n "nexus had started,do you need restart it?(Y/N):"
	read verify
	if [ "$verify" = "Y" ] ; then
		/home/sdh/maven/Nexus/nexus-oss-webapp-1.9.0.2/bin/jsw/linux-x86-32/nexus restart
        echo "nexus restared.."
	fi
fi

相关推荐