shell脚本中有些命令执行失败,导致失败后下面一个语句没有执行

tity_zhao 2018-01-09 04:10:01
脚本如下:


#!/bin/sh

/usr/local/apache-tomcat-7.0.82/bin/shutdown.sh
pidlist=`ps -ef|grep 'java.*tomcat.*'|grep -v "grep"|awk '{primt $2}'`
if [ "$pidlist" = "" ]
then
echo "no tomcat pid alive!"
else
echo "tomcat Id list :$pidlist"
kill -9 $pidlist
echo "service stop sucess"
fi
mkdir -p /tmp/back_up
mv /usr/local/apache-tomcat-7.0.82/webapps/activity-manage-*-SNAPSHOT.war /tmp/back_up/activity-manage-*-SNAPSHOT.war
mv /usr/local/apache-tomcat-7.0.82/webapps/job-*-SNAPSHOT.war /tmp/back_up/job-*-SNAPSHOT.war
mv /usr/local/apache-tomcat-7.0.82/webapps/manage-*-SNAPSHOT.war /tmp/back_up/manage-*-SNAPSHOT.war
mv /usr/local/apache-tomcat-7.0.82/webapps/web-*-SNAPSHOT.war /tmp/back_up/web-*-SNAPSHOT.war


if [ $? -eq 0 ];then
scp -r root@10.16.12.21:/usr/local/apache-tomcat-7.0.61/webapps/com_java_ci/activity-manage-*-SNAPSHOT.war /usr/local/apache-tomcat-7.0.82/webapps
fi
if [ $? -eq 0 ];then
rm -rf /usr/local/apache-tomcat-7.0.82/webapps/activity-manage-*-SNAPSHOT
fi
if [ $? -eq 0 ];then
scp -r root@10.16.12.21:/usr/local/apache-tomcat-7.0.61/webapps/com_java_ci/job-*-SNAPSHOT.war /usr/local/apache-tomcat-7.0.82/webapps
fi
if [ $? -eq 0 ];then
rm -rf /usr/local/apache-tomcat-7.0.82/webapps/job-*-SNAPSHOT
fi
if [ $? -eq 0 ];then
scp -r root@10.16.12.21:/usr/local/apache-tomcat-7.0.61/webapps/com_java_ci/manage-*-SNAPSHOT.war /usr/local/apache-tomcat-7.0.82/webapps
fi
if [ $? -eq 0 ];then
rm -rf /usr/local/apache-tomcat-7.0.82/webapps/manage-*-SNAPSHOT
fi
if [ $? -eq 0 ];then
scp -r root@10.16.12.21:/usr/local/apache-tomcat-7.0.61/webapps/com_java_ci/web-*-SNAPSHOT.war /usr/local/apache-tomcat-7.0.82/webapps
fi
if [ $? -eq 0 ];then
rm -rf /usr/local/apache-tomcat-7.0.82/webapps/web-*-SNAPSHOT
fi

pidlist1=`ps -ef|grep 'java.*tomcat.*'|grep -v "grep"|awk '{print $2}'`
if [ "$pidlist1" = "" ]
then
echo "no tomcat pid alive!"
else
echo "tomcat Id list :$pidlist1"
kill -9 $pidlist1
echo "KILL $pidlist1:"
echo "service stop success"
fi

————————————————————————————————
1.执行结果如下
no tomcat pid alive!
mv: cannot stat ‘/usr/local/apache-tomcat-7.0.82/webapps/activity-manage-*-SNAPSHOT.war’: No such file or directory
mv: cannot stat ‘/usr/local/apache-tomcat-7.0.82/webapps/job-*-SNAPSHOT.war’: No such file or directory
mv: cannot stat ‘/usr/local/apache-tomcat-7.0.82/webapps/manage-*-SNAPSHOT.war’: No such file or directory
mv: cannot stat ‘/usr/local/apache-tomcat-7.0.82/webapps/web-*-SNAPSHOT.war’: No such file or directory
job-0.0.1-SNAPSHOT.war 100% 53MB 52.6MB/s 00:00
manage-0.0.1-SNAPSHOT.war 100% 48MB 47.6MB/s 00:01
web-0.0.1-SNAPSHOT.war 100% 49MB 49.5MB/s 00:01
no tomcat pid alive!

问题:为啥mv命令行下第一个scap的语句没有执行,即scp -r root@10.16.12.21:/usr/local/apache-tomcat-7.0.61/webapps/com_java_ci/activity-manage-*-SNAPSHOT.war /usr/local/apache-tomcat-7.0.82/webapps没有执行,activity-manage-*-SNAPSHOT.war没有拷贝
...全文
3543 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zengzz 2018-10-30
  • 打赏
  • 举报
回复
pidlist=`ps -ef|grep 'java.*tomcat.*'|grep -v "grep"|awk '{primt $2}'` 应该为print 吧
曹宇飞丶 2018-01-10
  • 打赏
  • 举报
回复
/usr/local/apache-tomcat-7.0.82/webapps/web-*-SNAPSHOT.war 这个文件存在吗? 错误提示是不存在哈。 第一个scp的语句没有执行是因为有一个判断:if [ $? -eq 0 ]; 而上面mv 语句执行失败,所以判断结果不匹配,scp 也不执行了。
皇御雷霆 2018-01-09
  • 打赏
  • 举报
回复
sh -x 调试模式 mv命令没有执行吧,No such file or directory

2,161

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 UNIX文化
社区管理员
  • UNIX文化社区
  • 文天大人
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧