【发布时间】:2017-02-28 14:49:58
【问题描述】:
我正在从我的 shell 脚本中读取一个 .properties 文件。
我想为某个键读取一些值,然后想将它附加到某个字符串之间,但输出很奇怪。
#!/bin/bash
# Script used to read Property File
FILE_NAME="Test.properties"
prop_value=$(cat ${FILE_NAME} | grep Address)
echo "ABC${prop_value}DEF"
我的Test.properties是这样的
Name=Pravin
Age=25
Address=Mumbai
asd=asd
执行此脚本后,我期待
ABCAddress=MumbaiDEF
但我得到的输出类似于
DEFAddress=Mumbai
这里有什么问题?
如果我在脚本中定义任何变量,它可以工作,但是当我使用命令扩展从文件中读取它时,它就不起作用了。
【问题讨论】:
-
您的文件是 DOS 格式。它包含回车,在打印时将光标发送到行首。
-
顺便说一句,这里还有 shellcheck.net 会发现的其他错误。
-
代码的其他问题,请参阅UUoC — Useless Use of
cat。我确定这是重复的;找到副本会更难(而且可能不值得努力)。