YAML:以数据为中心,比json、xml等更适合做配置文件,yaml必须遵守的三个规则
缩进
yaml使用一个固定的缩进风格表示数据层结构关系,Saltstack需要每个缩进级别由两个空格组成。一定不能使用tab键
冒号
每个冒号后面一定要有一个空格(以冒号结尾不需要空格,表示文件路径的模版可以不需要空格)
短横线
想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一个列表的一部分
1.基本语法规则:
- 大小写敏感
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只允许使用空格。
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
2.支持的数据结构
- 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
- 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
- 字面量(数字、字符串、布尔值):单个的、不可再分的值
3.具体写法
字面量(数字、字符串、布尔值)
k: v :字面量直接写,字符串默认不用加上单引号或者双引号
双引号:会转义特殊字符
单引号:不会转义字符串里边的特殊字符;特殊字符会作为本身想表示的意思1
2
3name: zhangsan
age: 20
isBoss: false数组
多行写法使用- 值
来表示数组中的一个元素,需要注意缩进;单行使用[值,值]
来表示一个数组1
2
3
4
5
6
7
8#多行结构
friends:
- zhangsan
- lisi
- wangwu
#单行结构
friend: [zhangsan,lisi,wangwu]对象
多行写法:key:value的形式,使用多行写法需要注意缩进
单行写法:使用{key:value}的形式书写1
2
3
4
5
6
7#多行结构
friend:
name:zhangsan
age:20
#单行结构
friend: {name:zhangsan,age:20}
4..properties
文件和.yml
文件之间的不同
.properties文件中的写法
1
2
3
4
5
6
7
8
9person.last-name=\u674E\u56DB
person.age=12
person.birth=2017/12/15
person.boss=false
person.maps.k1=v1
person.maps.k2=14
person.lists=a,b,c
person.dog.name=dog
person.dog.age=1.yml文件中的写法
1
2
3
4
5
6
7
8
9
10person:
last-name: zhangsan
age: 20
birth: 2017/12/15
boss: false
maps:{key1:value1,key2:value2}
lists:[a,b,c]
dog:
name: dog
age: 1
参考: