bash - Bash - 如果 yaml 文件中存在值,则执行某些操作
问题描述
file.yaml 包含
thatyamlkey:
- key1
- key2
- key3
我想检查“thatyamlkey:”中是否存在“key2”。如果是,则执行某些操作,如果不是,则退出 1。
我将如何在 bash 中解决这个问题。
该文件可通过 /path/to/file.yaml 或 http://path/to/file.yaml 之类的 linux 访问
请激发一个想法:)
谢谢!
解决方案
使用类似的工具yq
(它是一个 YAML 解析器jq
):
filter='.thatyamlkey | any(. == $ARGS.positional[0])'
yq -e "$filter" file.yaml --args key2 > /dev/null || exit 1
...
yq
不发出 HTTP 请求;您必须先使用诸如curl
获取 URL 之类的工具。
推荐阅读
- reactjs - 路由器不在函数内部重定向
- php - 使用 Laravel 创建良好的 SEO 友好路线的问题
- actions-on-google - 将 Homegraph api 集成到我的智能家居中
- javascript - 在 Firebase 云函数中创建的无限循环(?)
- java - 将 bean 附加到自动装配列表
- javascript - 从 Google Cloud Function 中的 pubsubMessage 获取数据
- c# - 如何将一个表单加载到另一个表单的面板中
- ios - Core Data 和 Userdefaults 不存储数据
- json - 当我执行 Post 请求时,属性和值变为 null
- python - Terminal 和 JupterLab 使用不同的 Python 3 安装