提取shell脚本中使用的环境变量



有一些方法可以提取脚本使用的所有环境变量?我有一些使用几个环境变量来正常工作的大脚本。

但是要阅读所有代码并手动复制所有环境变量"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 '{}:+-=?'

首先,删除所有看起来像变量的内容,然后从输出中删除分隔符。

相关内容

  • 没有找到相关文章

最新更新