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文件,因为该文件是系统文件。 展开
注:是跳出循环,不是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(财富值+成长值)
展开全部
[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文件,因为该文件是系统文件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询