【发布时间】:2019-08-21 04:47:14
【问题描述】:
是否有一种“简单”的方式(没有函数或包)在终端 (bash/sh) 中获取 YAML 文件的值?
我想提取 users 的值 -> user("kube-admin-local") -> client-certificate-data
这是 YAML 示例:
users:
- name: "kube-admin-local"
user:
client-certificate-data: 0FURS0tLS0tCk1JSUM2VENDQWRHZ0F3SUJBZ0lJT2wyZ0NHL1BnTWd3RFFZSktvWklodmNOQVFFTEJRQ
- name: kube-admin
user:
client-certificate-data: LS0tLS1CRUd=0FURS0tLS0tCk1JSUM2VENDQWRHZ0F3SUJBZ0lJT2wyZ0NHL1BnTWd3RFFZSktvWklodmNOQVFFTEJ
【问题讨论】:
-
您需要在 bash 中编写一个 YAML 解析器才能正确执行此操作,我怀疑这在没有函数的情况下是可行的。所有合适的解决方案都使用成熟的 YAML 解析器,这是一个简单的解决方案,因为您不必担心 YAML 中的格式更改,或添加的 cmets、以流样式重写(部分)文件等。