初学shell,请指教
上一篇 /
下一篇 2011-03-15 19:18:36
/ 个人分类:语言脚本
今天起学习shell,很多不懂,希望大家帮帮我,感激不尽
今天学的内容:
1.process.sh
#!/bin/sh
ps -ef|grep $1
命令行参数的基本使用
疑问有:
参数能赋值或判断吗?比如:
变量 $ s = $1
或者 if [$1="yes"]
2.上面执行 ./process.sh java
能否把process.sh放在什么目录下,能直接当命令使用,比如直接:process java 而不要./当前目录下
3.echo,read
4.ps -ef|grep java
kill -9 pid
-----以上2条语句能否合为一条写呢?
比如:killall -9 java 但是我只想杀其中的一个java进程
5.if,elif,else,fi
分支的使用还是不错,尝试写了下 测试环境更新的脚本,但是错误百出,希望指教:
#!/bin/sh
#更新a包吗?
echo "update a,y or n?"
read a
#更新b包吗?
echo "update b,y or n?"
read b
#更新c包吗?
echo "update c,y or n?"
read c
#关进程
echo "closed process"
killall -9 java
{
if [ "a" = "y" ];then
cd /usr/apache-tomcat-6.0.18/vhosts_a/
#删除原包
echo "delete root"
rm -rf ROOT
rm -rf ROOT.war
#拷贝新包
echo "copy root>>>>>>>>>>"
cp /bak/a/*.war /usr/apache-tomcat-6.0.18/vhosts_a/
#重命名
echo "chongmingming"
mv *.war ROOT.war
else
#输入不正确
echo "not update"
fi
}
{
if [ "b" = "y" ];then
cd /usr/apache-tomcat-6.0.29-F/vhost_b/
rm -rf *
cp /bak/b/*.war /usr/apache-tomcat-6.0.29-F/vhost_b/
mv *.war ROOT.war
else echo "not update b"
fi
}
{
if [ "c" = "y" ];then
cd /usr/apache-tomcat-6.0.29-F/vhost_c/
rm -rf *
cp /bak/c/*.war /usr/apache-tomcat-6.0.29-F/vhost_c/
mv *.war ROOT.war
else
echo "not update office"
fi
}
#关缓存
echo "closed memcached"
killall -9 memcached
#启动缓存
echo "start memcached"
/usr/local/memcached/bin/memcached -d -m 512 -u root -p 11211
#启动web服务并打印后台
echo "start tomcat and logs"
cd /usr/apache-tomcat-6.0.18/bin
./startup.sh && tail -f ../logs/catalina.out
收藏
举报
TAG: