shell:为什么循环内调用脚本,遇到exit会退出循环? 15

a.sh文件中while循环内需要调用b.sh,但是b.sh中存在exit命令行;执行a.sh之后,会跳出循环;注:是跳出循环,不是read读空问题。#a.sh文件如下:... a.sh文件中while循环内需要调用b.sh,但是b.sh中存在exit命令行;执行a.sh之后,会跳出循环;
注:是跳出循环,不是read读空问题。

#a.sh文件如下:
#! /bin/sh
while true
do
echo "loop $i"
. b.sh
echo "loop 100"
done
echo "end loop"

#b.sh文件如下:
#! /bin/sh -x
echo "b.sh is process"
exit 0
echo "B.SH is process"

结果如下:
loop
b.sh is process
end loop

请问大神,有没有办法不跳出循环,继续执行循环内容?
注:不能改动b.sh文件,因为该文件是系统文件。
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏15(财富值+成长值)
良玉小帝
2015-07-22 · 个人日常精心汇总合集
良玉小帝
采纳数:5925 获赞数:9451

向TA提问 私信TA
展开全部
[root@localhost ~]# cat a.sh 
#! /bin/sh
while true
do
  echo "loop "
         . ./b.sh
        echo "loop 100"
done
echo "end loop"
[root@localhost ~]# cat b.sh 
#!/bin/sh -x
echo "b.sh is process"
exit 0
echo "B.SH is process"
[root@localhost ~]# sh a.sh 
loop 
b.sh is process

我的结果是正常的。。。

追问
不好意思,当while true前面加cat 某个txt时,就是跳出循环了。

不过我想知道的是:
有没有办法不跳出循环,继续执行循环内容?
注:不能改动b.sh文件,因为该文件是系统文件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式