![Bash:需要将变量导出到父进程。父进程是同一个进程吗?](https://linux22.com/image/1402602/Bash%EF%BC%9A%E9%9C%80%E8%A6%81%E5%B0%86%E5%8F%98%E9%87%8F%E5%AF%BC%E5%87%BA%E5%88%B0%E7%88%B6%E8%BF%9B%E7%A8%8B%E3%80%82%E7%88%B6%E8%BF%9B%E7%A8%8B%E6%98%AF%E5%90%8C%E4%B8%80%E4%B8%AA%E8%BF%9B%E7%A8%8B%E5%90%97%EF%BC%9F.png)
我想启动一个脚本来设置和/或更新一些环境变量。不像这个问题,我不介意启动脚本
. /path/to/my/script/myScript.sh
强制脚本运行与父脚本相同的进程,但是我不希望脚本在父脚本忘记时默默失败。我想检测问题并生成错误消息。
那么,判断脚本是否已在其父进程中执行的最佳方法是什么?
答案1
检查其中一个变量。如果变量为空或尚未设置,则显示错误
if [[ -z "$some_variable" ]]; then
echo "You must 'source /path/to/my/script/myScript.sh' first" >&2
exit 1
fi
当然,如果您希望为用户提供更无缝的工作流程,您也可以轻松地获取文件并继续。