请教大神,我在shell脚本A中调用shell脚本B中的方法,当B中的方法执行完成后,如何使脚本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
}

"""
#覆盖旧工程失败时报错退出
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建议函数的话和重定向管道一起用多看看书籍你好再见
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-19
为什么不把函数单独出来呢?
感觉你的脚本不完整
还有
是不是脚本B是function.sh?本回答被网友采纳