我有兩個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'指定哪個字段。希望這有助於=) –