![Bash:需要將變數匯出到父進程。父進程是相同的進程嗎?](https://rvso.com/image/1402602/Bash%EF%BC%9A%E9%9C%80%E8%A6%81%E5%B0%87%E8%AE%8A%E6%95%B8%E5%8C%AF%E5%87%BA%E5%88%B0%E7%88%B6%E9%80%B2%E7%A8%8B%E3%80%82%E7%88%B6%E9%80%B2%E7%A8%8B%E6%98%AF%E7%9B%B8%E5%90%8C%E7%9A%84%E9%80%B2%E7%A8%8B%E5%97%8E%EF%BC%9F.png)
我想啟動一個設定和/或更新一些環境變數的腳本。不像這個問題,我不介意啟動腳本
. /path/to/my/script/myScript.sh
強制腳本運行與父進程相同的進程,但是我不希望如果父進程忘記,腳本會默默地失敗。 id' 喜歡檢測問題並產生錯誤訊息。
那麼,判斷腳本是否已在其父進程內執行的最佳方法是什麼?
答案1
檢查其中一個變數。如果為空或沒有設置,則顯示錯誤
if [[ -z "$some_variable" ]]; then
echo "You must 'source /path/to/my/script/myScript.sh' first" >&2
exit 1
fi
當然,如果您希望為用戶提供更無縫的工作流程,您可以輕鬆取得文件並繼續。