环境variables中的dynamic逻辑?

我经常使用cURL或wget等工具从(Linux / bash)命令行调用特定的远程服务器。 此服务器需要每10分钟过期的authentication令牌。 我有一个程序,可以生成一个新的令牌。

我想要的是一个环境variables$ TOKEN,我可以从命令行使用这个variables,每10分钟刷新一次,或者更好的是,只有在请求时刷新自己,甚至最多只有每10分钟刷新一次。

我希望有一种方法可以将环境variables的评估与可执行文件绑定在一起,从而允许我通过脚本来执行此操作。 否则,我想知道是否有办法设置一个后台进程,每10分钟更新一次环境variables。

你可以设置一个每10分钟调用一次脚本的cron作业(或者任何你想要的时间间隔)。 然后脚本更新variables。

请参阅: linux:如何永久和全局更改环境variables

你可以创build一个别名来更新env var

alias token ='TOKEN = $(wget -q -O – http://webserver.com/TOKEN )'

要么

alias token ='TOKEN = $(/ path / to / token-generator)'

那么,简单地运行“令牌”将为当前会话设置该var

你可以添加到你的bashconfiguration文件,所以别名仍然是login

存储两个环境variablesTOKENTOKEN_TIMESTAMP

 if [ $(($(date +%s) - $TOKEN_TIMESTAMP)) -ge 600 ]; then /script/to/update/token.sh TOKEN_TIMESTAMP=$(date +%s) # this should be in the above script. fi /script/that/uses/token.sh # everything could be in this one script. 

这样你就不必将逻辑存储在环境variables[ew]中,或者设置一个cron作业。 令牌按需刷新。