当前位置: 首页 > news >正文

yaml工作常用语法总结

文章目录

    • yaml中的| 符号 和 > 符号
    • yaml中的 - 符号
    • 工作中常遇到的问题
      • - 命令行中有冒号加空格,导致yaml解析报错

yaml中的| 符号 和 > 符号

  1. 在 YAML 中,| 符号表示标量块(Scalar Block)的开始。它用于表示长文本块或保持多行字符串的格式。

  2. 在 YAML 中,> 符号表示折叠块(Folded Block)的开始。它用于表示将多行文本块折叠为单行,不保留每行的换行符和大部分缩进。

使用 > 符号后,多行文本会被折叠成单行,而换行符会被替换为空格。只有在文本末尾的换行符会被保留。

需要注意的是,只有文本末尾的换行符会被保留。如果希望保留所有换行符和缩进,可以使用 | 符号。

另外,在 YAML 中,您可以同时使用 | 和 \ 进行多行文本块的折叠,并将其折叠到一行中。这样可以保留换行符,并将多行文本合并为一行。

以下是一个示例,展示了如何在 YAML 中使用 | 和 \ 进行多行折叠到一行的写法:

description: |This is a long text \that spans \multiple lines \and is folded into a single line.

在上述示例中,使用 | 表示标量块的开始,使用 \ 将多行文本折叠到一行中,保留了原始的换行符。
需要注意的是,\ 符号后面不能有空格,否则会被解析为文本的一部分。

yaml中的 - 符号

在 YAML 中,- 符号用于表示一个列表项(List Item)。它是 YAML 中定义序列(Sequence)的一种方式。

使用 - 符号,可以将多个值组合成一个列表,表示一组相关的项。

fruits:- apple- banana- orange

在上述示例中,fruits 是一个键,- 符号后面的值表示一个列表,包含了三个水果项:apple、banana 和 orange。

注意,每个列表项需要在同一缩进级别下,并且可以包含任意数量的空格缩进。

工作中常遇到的问题

- 命令行中有冒号加空格,导致yaml解析报错

- cd /home/xxx/ && curl -vF "f1=@$(ls -t xxx.install*| head -1)" -H "UploadToken: xxx:vimYNbV-aaa=:fasdfaluZbb" http://192.168.1.1:8888/api/v1/file/upload

问题分析:
在 YAML 中的标量块中使用了冒号:加空格,可能会导致yaml解析问题。因为在 YAML 中,冒号用于表示键值对的分隔符。

经过观察:在 HTTP 请求头中,冒号 : 用于分隔头字段的名称和值。
值中虽然有冒号, UploadToken: 和值中间有个空格。

经过测试,使用postman生成的curl中,也是这么处理的。

curl --location 'http://192.168.1.2:8888/api/v1/file/upload' \
--header 'UploadToken: httpcat:aaaVvimYNbV-YpJ9EFMbbb=:aaakZWFkbGluZSIcccc' \
--form 'f1=@"/C:/Users/xxx/Desktop/syslog.md"'

解决方法:
推荐如下方法:

为了避免 YAML 解析失败,如果您想在 YAML 中表示命令行,可以使用以下两种方式:

您可以将该行放在引号中,以保留原始字符串的格式。例如:

- 'xxxx'

或者,您可以将该行作为纯文本块(Plain Scalar)进行处理,使用 | 或 >- 符号来保留换行符和缩进。例如:

- |xxxx

使用上述写法,您可以确保以 - 开头的行被正确解析为字符串,而不会被误解为列表项。

总结:yaml中写命令行字符时候,建议 使用 - | 方式,避免被当前列表项导致一些yaml解析错误问题。

http://www.lryc.cn/news/256064.html

相关文章:

  • bash中通过变量中的内容获取对应的关联数组
  • Redis Geo操作地理位置
  • 市面上的AR眼镜:优缺点分析
  • 2024年湖南省职业院校技能竞赛高职组电子与信息专业类软件测试赛项竞赛规程及样题
  • 10、pytest通过assert进行断言
  • Webpack技术入门与实践
  • HarmonyOS开发(九):数据管理
  • acwing-Linux学习笔记
  • Python渗透测试——一、数据包的编辑工具——Scapy
  • 使用webstrom编写vue开启提示
  • linux远程桌面管理工具(xrdp)、向日葵
  • 【力扣100】8.找到字符串中所有字母异位词
  • 圆通速递查询,圆通速递单号查询,用表格导出查询好的物流信息
  • FLStudio中文2024中文最新汉化安装包下载
  • AI:大语言模型训练方法 - 机器学习
  • Linux(17):认识与分析登录档
  • STM32上模拟CH340芯片的功能 (一)
  • 图论——最小生成树
  • C++基础 -42- STL库之list链表
  • Backend - Python 序列化
  • 初级数据结构(一)——顺序表
  • 实现:切换页面切换标题,扩展 vue-router 的类型
  • 已通过考试和认证注册以及后续计划表
  • 开源计算机视觉库OpenCV详解
  • 使用pytorch查看中间层特征矩阵以及卷积核参数
  • HarmonyOS4.0从零开始的开发教程09页签切换
  • 大电流H桥电机驱动电路的设计与解析(包括自举电路的讲解,以IR2104+LR7843为例)
  • windows11 windows 11 (win11 win 11) 怎么安装 Python3 ? numpy? sounddevice? 声音信号处理库?
  • git如何配置多个远程仓库,并且进行切换
  • 计算机存储单位 + 程序编译过程