有一些方法可以提取脚本使用的所有环境变量?我有一些使用几个环境变量来正常工作的大脚本。
但是要阅读所有代码并手动复制所有环境变量"calls"我觉得会很无聊,而且我很可能会错过其中的一些!
有某种脚本或插件可以完成这种工作吗?
例如:
teste.sh:
if [ ! -z "$CI_COMMIT_TAG" ] ; then
export DOCKER_IMAGE_FULL_NAME="$REGISTRY_URL/$DOCKER_IMAGE_NAME:$CI_COMMIT_TAG"
else
export DOCKER_IMAGE_FULL_NAME="$REGISTRY_URL/$DOCKER_IMAGE_NAME:pid$CI_PIPELINE_ID"
fi
Variables Found:
$CI_COMMIT_TAG
$REGISTRY_URL
$DOCKER_IMAGE_NAME
$CI_PIPELINE_ID
远非完美,但您可以使用正则表达式来提取$var
,${VAR}
,${Var-default}
,${VAR:+alternative}
等形式的所有变量展开。
grep -io '${?[[:alnum:]_]+[}:+-=?]?' yourscript.sh | tr -d '{}:+-=?'
等效的扩展grep调用:
grep -ioE '${?[[:alnum:]_]+[}:+-=?]?' yourscript.sh | tr -d '{}:+-=?'
首先,删除所有看起来像变量的内容,然后从输出中删除分隔符。