连接变量,cat和cut命令结果的问题

时间:2019-09-25 08:43:19

标签: linux bash variables cut cat

我有一个bash脚本,可以在其中读取文件 .properties ,并获得一个存储在变量中的属性:

PROP_VALUE=`cat $PROP_FILE | grep "^$PROP_KEY" | cut -f2 -d'='`

此变量设置为 5.0.1

当我想使用此变量并将其连接到第二个变量时,得到以下结果:

CONCAT=".0"
echo $PROP_VALUE
=> Result : 5.0.1

echo $PROP_VALUE$CONCAT
=> Result : .00.1

这将删除我的第一个变量($ PROP_VALUE)的前2个字符,并将其替换为我的第二个变量($ CONCAT)的字符。

预期结果是: 5.0.1.0

2 个答案:

答案 0 :(得分:2)

确保您的.properties是真实的UNIX文件。如果是这样,那么您的脚本就可以了。如果.properties具有DOS / winslows编码,那么您会遇到麻烦。我认为没有其他解释。

答案 1 :(得分:0)

我的财产文件:

version=5.0.1
category=dev
env=rct

当我使用以下语法时,我遇到了同样的问题:

PROP_VALUE=$(cat $PROP_FILE | grep "^$PROP_KEY" | cut -f2 -d'=')

如果$ PROP_VALUE是我手动创建的变量(不检索属性文件中的值),则它起作用:

PROP_VALUE="5.0.1"
CONCAT=".0"
echo $PROP_VALUE$CONCAT
=> Result : 5.0.1.0