【发布时间】: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
【问题讨论】:
我有一个文件
dogs:${breed}
我想 grep 并获取 ${dog} 并获取值,我已将值导出为
export breed='german'
我所做的是
eval "$(grep -iw dogs file_name | awk 'BEGIN {FS=":"} {print $2}')"
这实际上会导致错误,因为它将德语作为命令。 我想要的输出如下。
german
【问题讨论】:
您可以使用envsubst 替换文字中的shell 样式变量:
echo 'dogs:${breed}' > file_name
export breed=german
grep -iw dogs file_name | awk 'BEGIN {FS=":"} {print $2}' | envsubst
这会输出german
【讨论】:
尝试改变
eval "$(grep -iw dogs file_name | awk 'BEGIN {FS=":"} {print $2}')"
到
eval "echo $(grep -iw dogs file_name | awk 'BEGIN {FS=":"} {print $2}')"
【讨论】: