我有两个Bash脚本。父脚本调用下标执行一些操作并返回一个值。我怎样才能从脚本中返回一个值到父脚本?在下标中添加return
并捕获父值中的值不起作用。Bash - 从下标返回到父脚本的值
14
A
回答
24
我假设这些脚本在两个不同的进程中运行,即您不是“采购”其中的一个。
这取决于你想要返回什么。如果你希望只在0和255之间,以返回退出代码,那么:如果你想返回一个字符串
# Child (for example: 'child_script')
exit 42
# Parent
child_script
retn_code=$?
,那么你将不得不这样做,通过标准输出(或文件)。有捕获的几种方法,最简单的就是:
# Child (for example: 'child_script')
echo "some text value"
# Parent
retn_value=$(child_script)
+1
回声方法是否通过子脚本或最后一行返回所有echo'd? – 2015-05-21 23:43:28
+0
@AakilFernandes:在这种情况下,'echo'写入给它的行:示例中的“一些文本值”。但是,父母正在捕获孩子的所有标准输出,不管它是否来自'echo“。这可能是由换行'$'\ n''分隔的多行 – cdarke 2015-05-22 07:48:09
-3
看看这个答案从昨天:http://stackoverflow.com/a/16325765/1983854 - 它可以帮助很多 – fedorqui 2013-05-02 12:29:43