这里写目录标题

  • ​​源码​​
  • ​​使用方法​​
  • ​​测试文件1 vehicle_params.yaml​​
  • ​​效果​​
  • ​​测试文件2 vehicle_params.yaml​​
  • ​​效果​​
  • ​​测试文件3 vehicle_params.yaml​​
  • ​​效果​​
  • ​​测试文件4 vehicle_params.yaml​​

yaml文件格式,必须要有冒号+空格
可以支持简单的yaml文件读取和解析。如下

key: value

源码

#! /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

效果

linux shell脚本读取并解析yaml文件_激光雷达

测试文件2 vehicle_params.yaml

vehicle_type: 1000  # 用于区分车辆型号,2.0车还是3.0车
body_width: 1.144 # 车身宽,车身主体宽度,不包括激光雷达在内,m
vehicle_width: 1.284 # 车宽,车辆总宽度,包括激光雷达在内,m

效果

linux shell脚本读取并解析yaml文件_bash_02

测试文件3 vehicle_params.yaml

vehicle_type: "2.0"  # 用于区分车辆型号,2.0车还是3.0车
body_width: 1.144 # 车身宽,车身主体宽度,不包括激光雷达在内,m
vehicle_width: 1.284 # 车宽,车辆总宽度,包括激光雷达在内,m

效果

linux shell脚本读取并解析yaml文件_运维_03

测试文件4 vehicle_params.yaml

body_width: 1.144 # 车身宽,车身主体宽度,不包括激光雷达在内,m
vehicle_width: 1.284 # 车宽,车辆总宽度,包括激光雷达在内,m
vehicle_type: abcdefg # 用于区分车辆型号,2.0车还是3.0车

linux shell脚本读取并解析yaml文件_bash_04


参考:​​https://www.codenong.com/cs107066235/​