我有一个bash脚本,它正在调用多个bash剧本。
例如:
script1.sh
source script_data.sh
bash script2.sh
variables
code ...
script2.sh
source script_new.sh
...
bash script3.sh
varialbles ...
code ...
script_data.sh
someVariable=1
functions() ...
...
script3.sh
code ...
variables ...
exit 0
问题是,当我用退出0从script3退出时,代码将转到script2.sh
如何退出整个过程?
问候,
将bash script2.sh
替换为source script2.sh
,并且script2.sh
中的出口与script1.sh
处于相同的过程中。
在选择此解决方案之前,请检查您的代码。在改变代码之后,script2.sh
中的环境的改变也在script1.sh
的环境中进行。
我个人非常喜欢使用函数。将附加的bash脚本重新定义为bash。关于bash风格的问题,我一直参考本指南。
这不起作用:source Script_1.sh
Script_1.sh
echo "Do stuff" # Some code here
source Script_2.sh
echo "Do more stuff" # Some more code here
Script_2.sh
echo "Do stuff" # Some code here
exit 0
这将起作用:source New_Script_1.sh
New_Script_1.sh
Function_2() {
echo "Do stuff" # Some code here
return 0
}
echo "Do stuff" # Some code here
Function_2
echo "Do more stuff" # Some more code here
曾经Scrpit_2.sh的功能现在存在于Function_2中。你不必在最后使用return 0
,如果你愿意,你可以使用最多8位(0-255(的任何数字。bash函数的返回值将存储在环境变量$?
中,并且只能在函数调用后立即访问(后面的一行(。