我有两个shell脚本,说script1.sh和script2.sh。我从script1.sh调用script2.sh。在script2.sh中,完成了一些评估,并根据结果设置标志。现在我需要将该标志传递给script1.sh,以此来决定script1.sh是否应该继续执行或退出。我没有使用函数。而当我导出标志,在script1.sh中它是空白的。
我现在的问题是如何从script2.sh返回标志?
有帮助吗?有任何想法吗?经验分享?将子shell脚本的值返回给父脚本
2
A
回答
1
我希望你(由语句exit {value}
SE)
例如使用返回代码从script2.sh
./script2.sh
$?
包含script2.sh
的退出声明中的返回值。
这里不能使用export
。 export
使变量可用于后续子进程。它不能用于将值传递回父进程,因为您正在修改特定于子进程的变量副本。
3
你可以打印出结果并捕捉它SCRIPT1:
# Script 1
flag="$(./script2.bash)"
和:
# Script 2
[...]
printf '%s\n' "$flag"
希望这有助于=)
1
只需使用SCRIPT2的退出状态:
if script2.sh ; then
echo Exited with zero value
else
echo Exited with non zero
fi
在script2中使用exit 0
或exit 1
来设置标志。
相关问题
- 1. 在父脚本中访问由shell脚本返回的值
- 2. 如何将Mongodb js的返回值返回给shell脚本
- 3. Shell脚本 - CURL脚本返回错误
- 4. 如何将shell脚本的值返回给rails?
- 5. 从子shell脚本中的函数退出到父shell脚本
- 6. AWK:返回shell脚本的值
- 7. 使用System.exit(n)将值返回给Unix shell脚本
- 8. 如何从python脚本中的shell脚本返回值
- 9. 如何从perl脚本中的shell脚本返回值
- 10. 捕获返回值到shell脚本
- 11. 从shell脚本调用perl,如何将返回值从perl传递给shell?
- 12. 如何从孩子预期脚本返回值到父sh脚本
- 13. shell脚本在给定的句子
- 14. 如何使用shell脚本中的函数将值/消息从一个脚本返回到另一个脚本?
- 15. 将WLST脚本的值返回到Ant脚本
- 16. 将函数的返回值分配给unix shell脚本中的变量
- 17. 将shell脚本的参数传递给jython脚本
- 18. 使用shell脚本时Ant脚本返回代码问题?
- 19. bash脚本返回Shell脚本调用错误
- 20. Bash - 从子脚本退出父脚本
- 21. 编写shell脚本的shell脚本
- 22. 期望脚本返回值
- 23. python - subprocess.Popen()。pid返回父脚本的pid
- 24. 将环境传递给父项的python shell脚本执行
- 25. 将父脚本的参数的部分列表传递给子脚本
- 26. “无输出”返回代码Shell脚本
- 27. AppleScript ping shell脚本始终返回true
- 28. 在shell脚本中返回命令
- 29. shell脚本返回null输出
- 30. 从IDL脚本将参数传递给shell脚本
我宁愿这个解决方案。请记住,非零退出状态通常表示错误; 'script2.bash'可能有几个不同的非错误条件,导致'script1.bash'的不同标志值。 – chepner
你知道解决方案返回多个值而不是一个? – Amir
我通常将它们作为一个值返回,并用变量中不存在的分隔符分隔。然后我使用'cut'将返回值分成多个值。因此,在脚本2中,我会做类似于:'printf'%s,%s \ n'“$ var1”“$ var2”'(请注意''printf'格式字符串中的'''分隔符')。然后在脚本1我会做:'single_value =“$(./ script1.bash)”'后面跟着'var1 =“$(echo”$ single_value“| cut -f1 -d',')”'' var2 =“$(echo $ single_value”| cut -f2 -d',')“'。'-d'指定分隔符(在本例中为''''),'-f'指定哪个字段。希望这有助于=) –