【发布时间】:2016-07-29 11:59:55
【问题描述】:
我在 bash linux 中试过这个命令
echo "example=value" | sed "s/^example=\(.*\)$/\1/"
输出为value。但是如果我把它放在一个变量中,它就不起作用了。
例如:
var="example=value" | sed "s/^example=\(.*\)$/\1/"
echo $var
输出什么都没有。怎么了?
【问题讨论】:
-
var=$(echo "example=value" | sed "s/^example=\(.*\)$/\1/") -
我会收紧你的 sed,并使用强引号:
var=$(echo "example=value"|sed 's/^.*=\(.*\)/\1/') -
在尝试编写更多的 shell 脚本之前,请阅读 Chris Johnson 的《Shell Scripting Recipes》一书,因为您缺少一些重要的基础知识,并且在没有学习基础知识的情况下即将开始编写非常脆弱的 shell 脚本的职业生涯.