请教大神,我在shell脚本A中调用shell脚本B中的方法,当B中的方法执行完成后,如何使脚本A也不再执行?

请教大神,我有两个shell脚本A和B,其中脚本A中调用了B的方法,我想在B中的方法执行完成后,使脚本A也不再执行,该怎么做?万分感谢!!!!!以下是本人代码脚本A:#!... 请教大神,我有两个shell脚本A和B,
其中脚本A中调用了B的方法,我想在B中的方法执行完成后,使脚本A也不再执行,该怎么做?万分感谢!!!!!
以下是本人代码
脚本A:
#!/bin/bash
#1.查找所有备份文件,并列出
./function.sh findBackupVersion
#2.用户输入指定备份版本,进行还原
./function.sh backupCover
if [ $? -ne 0 ]; then
echo "================还原BS失败================"
fi
#3.覆盖配置文件
./function.sh coverConfigurations

脚本B:
#!/bin/bash

#用户输入指定版本,查找备份文件覆盖工程
function backupCover(){
echo "================执行还原BS工程================"
echo "请输入备份文件版本,如1506191414 ( 2015年6月19日14时14分 )"
read version
#如果存在备份文件
if [ -n $"$(ls /data/upgrade/BusinessService/backup/BS_backup$version.zip)" ]; then
unzip -o $(ls /data/upgrade/BusinessService/backup/BS_backup$version.zip) -d /
#如果备份文件不存在
else
echo "================备份文件不存在,请重新选择================"
read versionAgain
if [ -n $"$(ls /data/upgrade/BusinessService/backup/BS_backup$versionAgain.zip)" ]; then
unzip -o $(ls /data/upgrade/BusinessService/backup/BS_backup$versionAgain.zip) -d /
else
echo "================备份文件不存在================"
exit
fi
fi

#覆盖旧工程失败时报错退出
if [ $? -ne 0 ]; then
echo "================还原BS工程命令执行失败================"
fi
}
展开
 我来答
YihengJ
2015-06-22
知道答主
回答量:43
采纳率:0%
帮助的人:13.1万
展开全部
"""
#覆盖旧工程失败时报错退出
if [ $? -ne 0 ]; then
echo "================还原BS工程命令执行失败================"
fi
"""
这里:最好在每一个分支都加上退出命令,哪怕是末尾。

函数里一般不要用 exit
用return
成功就 return 0;
否则 return -1;
把异常交给调用者处理
要用的地方加

#####start#####
bash 脚本B; #或“ ./脚本B”,如果有shell bang。执行一个只定义了函数的脚本只
#会使函数在下文中可用
backupCover "args"&& exit; #'&&'的用法是:如果前面 return 0,后面的命令被执行。args是参数
# backupCover "args" || exit; #'||':如果前面没有return 0,后面的命令被执行。
######end######

还有backupCover不要这样写,判断输入有效性用while或until,如
function backupCover(){
echo "================执行还原BS工程================"
echo "请输入备份文件版本,如1506191414 ( 2015年6月19日14时14分 )"
read version
#如果存在备份文件
until [ -n $"$(ls /data/upgrade/BusinessService/backup/BS_backup$version.zip)" ];
do
echo "================备份文件不存在,请重新选================"
read version
done

unzip -o $(ls /data/upgrade/BusinessService/backup/BS_backup$version.zip) -d /

#覆盖旧工程失败时报错退出
if [ $? -ne 0 ]; then
echo "================还原BS工程命令执行失败================"
fi
}

时间不早了要迟到了我上学去了追问的话我下周才能看到有事加Q:783745530建议函数的话和重定向管道一起用多看看书籍你好再见
happygrid
2015-06-19 · TA获得超过3106个赞
知道大有可为答主
回答量:2672
采纳率:69%
帮助的人:2183万
展开全部
为什么不把函数单独出来呢?
感觉你的脚本不完整
还有
是不是脚本B是function.sh?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式