我有兩個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