2017-06-09 11 views
0

我正在使用shell脚本来检索应用程序的环境变量。 变量和值的例子:如何从部署在Cloud Foundry中的应用程序检索每行中的所有值

User-Provided: 
MLP_AUTH_CHECK_TOKEN_AUTH_HEADER: Basic eekmhdiuenéseégdfdtax= 
MLP_AUTH_CHECK_TOKEN_URL: https://appName-Environment.Domain 
MLP_UAA_PUBLIC_KEY: -----BEGIN PUBLIC KEY----- 
bababbabababababababababababababababababababababbbabababababababababababababababababababab 
-----END PUBLIC KEY----- 
MLP_UAA_SERVER_URL: https://appName-Environment.Domain 
RUN_MODE: STAGING 

No running env variables have been set 

No staging env variables have been set 

我用这个命令来获取值:cf env appName | awk '/User-Provided/,/No staging env variables have been set/' | cut -f2,3 -d" " | tail -n +2 | head -n -4

 Basic eekmhdiuenéseégdfdtax= 
     https://appName-Environment.Domain 
     -----BEGIN PUBLIC KEY----- 
     bababbabababababababababababababababababababababbbaba 
     -----END PUBLIC KEY----- 
     https://appName-Environment.Domain 
     STAGING 

这里,因为令牌被分成三条线的结果并不好,我不会在一行中得到它,同样,如果我基于冒号切割,我将在每行结果的开始处获得与空格相同的结果。

请帮我使用一个通用的解决方案,检索每一行中的值?

注意,我有差异的应用程序,这种情况是有一个应用程序,它可以从一个不同到另一个,我需要的是,在有效的解决方案一般

预先感谢您

+0

显示期望的输出 – RomanPerekhrest

+0

错误的输出是第二个,但是当我保存它的文件时,它会将密钥存储在三行中,因为它是在三行中输出的,但是它只是一个在云代工中的文件,而在三行在文本区CF – Foudel

+0

你试图检索什么标记?这是'uaac'令牌吗?或者这是'cf cli'令牌? –

回答

0

对于cf cli代币,你可以做

$> cat〜/ .cf/config.json | grep的的accessToken

如果其uaac的道理,你可以做

$> uaac目标--skip-SSL验证

$> uaac令牌客户端获得[UAA_CLIENT_ID] -s [UAA_CLIENT_SECRET ]

$>出口MY_TOKEN = $(uaac上下文| grep按 “*的access_token:” | SED -n -e “S /^.*的access_token:// p”)

+1

'cf oauth-token'是获取有效令牌的另一种选择。 –

相关问题