初学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:

 

评分:0

我来说两句

日历

« 2024-05-15  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 19055
  • 日志数: 19
  • 建立时间: 2011-03-10
  • 更新时间: 2012-08-25

RSS订阅

Open Toolbar