![Bash: 変数を親プロセスにエクスポートする必要があります。親は同じプロセスですか?](https://rvso.com/image/1402602/Bash%3A%20%E5%A4%89%E6%95%B0%E3%82%92%E8%A6%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%AB%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%E8%A6%AA%E3%81%AF%E5%90%8C%E3%81%98%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
いくつかの環境変数を設定または更新するスクリプトを起動したいと思います。この質問、スクリプトを次のように起動しても構いません
. /path/to/my/script/myScript.sh
スクリプトを強制的に親と同じプロセスを実行させますが、親が忘れた場合にスクリプトが黙って失敗することは望ましくありません。問題を検出してエラー メッセージを生成したいと思います。
では、スクリプトが親プロセス内で実行されたかどうかを確認する最良の方法は何でしょうか?
答え1
変数の1つをチェックしてください。空または設定されていない場合は、エラーを表示します。
if [[ -z "$some_variable" ]]; then
echo "You must 'source /path/to/my/script/myScript.sh' first" >&2
exit 1
fi
もちろん、ユーザーにとってよりシームレスなワークフローが必要な場合は、ファイルを簡単に取得して続行することもできます。