linux shell脚本读取并解析yaml文件
原创
©著作权归作者所有:来自51CTO博客作者缥缈峰虚竹的原创作品,请联系作者获取转载授权,否则将追究法律责任
这里写目录标题
- 源码
- 使用方法
- 测试文件1 vehicle_params.yaml
- 效果
- 测试文件2 vehicle_params.yaml
- 效果
- 测试文件3 vehicle_params.yaml
- 效果
- 测试文件4 vehicle_params.yaml
yaml文件格式,必须要有冒号+空格
可以支持简单的yaml文件读取和解析。如下
源码
#! /bin/bash
# 关键词
key="vehicle_type"
# yaml文件位置
yaml_name="/home/xxxx/vehicle_param/vehicle_params.yaml"
function read_key(){
flag=0
# 逐行读取内容
cat $1 | while read LINE
do
if [ $flag == 0 ];then
# 属性开始标志 vehicle_type:
if [ "$(echo $LINE | grep "$key:")" != "" ];then
if [ "$(echo $LINE | grep -E ' ')" != "" ];then
# 截取出key值
echo "$LINE" | awk -F " " '{print $2}'
continue
else
# 如果关键词后面没有空格,则跳出继续查找
continue
fi
fi
fi
done
}
value=($(read_key $yaml_name))
echo ${value}
使用方法
修改 关键词 和 yaml文件位置即可。
测试文件1 vehicle_params.yaml
vehicle_type: 3 # 用于区分车辆型号,2.0车还是3.0车
body_width: 1.144 # 车身宽,车身主体宽度,不包括激光雷达在内,m
vehicle_width: 1.284 # 车宽,车辆总宽度,包括激光雷达在内,m
效果
测试文件2 vehicle_params.yaml
vehicle_type: 1000 # 用于区分车辆型号,2.0车还是3.0车
body_width: 1.144 # 车身宽,车身主体宽度,不包括激光雷达在内,m
vehicle_width: 1.284 # 车宽,车辆总宽度,包括激光雷达在内,m
效果
测试文件3 vehicle_params.yaml
vehicle_type: "2.0" # 用于区分车辆型号,2.0车还是3.0车
body_width: 1.144 # 车身宽,车身主体宽度,不包括激光雷达在内,m
vehicle_width: 1.284 # 车宽,车辆总宽度,包括激光雷达在内,m
效果
测试文件4 vehicle_params.yaml
body_width: 1.144 # 车身宽,车身主体宽度,不包括激光雷达在内,m
vehicle_width: 1.284 # 车宽,车辆总宽度,包括激光雷达在内,m
vehicle_type: abcdefg # 用于区分车辆型号,2.0车还是3.0车
参考:https://www.codenong.com/cs107066235/