从YAML文件中读取关键词值

function read_from_settings(){
    setting_yaml="$1"
    keyword="$2"
    value=$(cat "$setting_yaml" | grep "$keyword" | awk '{print $2}' | tr -d "[:space:]")
    echo "$value"
}
这是一个简单的 Bash 函数,名为 `read_from_settings`,用于从 YAML 文件中读取特定关键词的值。接下来,我将详细解释这个函数的每一部分,并给出一个例子。

### 函数详解
function read_from_settings(){
    setting_yaml="$1"   # 将传入的第一个参数(即 YAML 文件的路径)赋值给变量 setting_yaml
    keyword="$2"        # 将传入的第二个参数(即要搜索的关键词)赋值给变量 keyword

    # 使用管道将多个命令连接起来,从 YAML 文件中读取关键词的值
    # cat "$setting_yaml":显示 YAML 文件的内容
    # grep "$keyword":从文件中搜索关键词
    # awk '{print $2}':输出每行中第二个字段的值(默认字段分隔符是空格)
    # tr -d "[:space:]":删除所有空白字符(包括空格、制表符等)
    value=$(cat "$setting_yaml" | grep "$keyword" | awk '{print $2}' | tr -d "[:space:]")

    echo "$value"  # 输出关键词的值
}
### 举例说明

假设你有一个名为 `settings.yaml` 的文件,内容如下:
database:
  host: localhost
  port: 3306
  username: admin
  password: secret
你想从这个文件中读取 `port` 的值。你可以通过以下方式调用函数:
read_from_settings settings.yaml "port:"
输出应该是:
3306
注意,在搜索关键词时,我们使用了 `"port:"`(包括冒号)。这是因为 YAML 文件中的键和值之间通常使用冒号分隔。同时,由于我们使用了 `awk '{print $2}'`,它会输出每行中第二个字段的值,这意味着它会输出冒号后面的值。

此外,`tr -d "[:space:]"` 用于删除值周围的任何空白字符,以确保输出的值是纯净的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值