【问题标题】:Echo a grep result回显 grep 结果
【发布时间】:2020-09-24 01:25:56
【问题描述】:

我有一个文件

dogs:${breed}

我想 grep 并获取 ${dog} 并获取值,我已将值导出为

export breed='german'

我所做的是

eval "$(grep -iw dogs file_name | awk 'BEGIN {FS=":"} {print $2}')"

这实际上会导致错误,因为它将德语作为命令。 我想要的输出如下。

german

【问题讨论】:

    标签: linux bash shell


    【解决方案1】:

    您可以使用envsubst 替换文字中的shell 样式变量:

    echo 'dogs:${breed}' > file_name
    export breed=german
    grep -iw dogs file_name | awk 'BEGIN {FS=":"} {print $2}' | envsubst
    

    这会输出german

    【讨论】:

      【解决方案2】:

      尝试改变

      eval "$(grep -iw dogs file_name | awk 'BEGIN {FS=":"} {print $2}')"
      

      eval "echo $(grep -iw dogs file_name | awk 'BEGIN {FS=":"} {print $2}')"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多