我有这样的内容一个键 - > value属性文件(my.prop):Bash - 如何将文件内容读入变量,该文件是从key-> value属性文件中读取的?
ROOT_PATH = /opt/user1/
REL_PATH = data/folder1/
CONF_FILENAME = my.conf
在我的bash脚本,我只是读取这个文件,像这样:
#!/bin/bash
PROP_FILE='my.prop'
ROOT_PATH =''
REL_PATH=''
CONF_FILENAME=''
while read -r key eq value; do
case $key in
"ROOT_PATH")
ROOT_PATH=${value}
;;
case $key in
"REL_PATH")
REL_PATH=${value}
;;
case $key in
"CONF_FILENAME")
CONF_FILENAME=${value}
;;
esac
done < $PROP_FILE
之后我想,以形成路径my.conf文件并阅读其内容,一些变量,像这样:
CONF_FULL_PATH=$ROOT_PATH$REL_PATH$CONF_FILENAME
CONF_FILE_CONTENT=`cat ${CONF_FULL_PATH}`
如果我打印出CONF_FULL_PATH
变量里面会有一些垃圾(三个子路径的一部分)。 并且在该行CONF_FILE_CONTENT=`cat ${CONF_FULL_PATH}`
我都会有这样的错误信息 - :没有这样的文件或directoryta /文件夹1/
所以,我的问题是,我怎么能形成正确的路径,my.conf文件,并把它的内容给一些特定的变量?我已经试过source
命令作为while循环的替代品。另外要建立一个合适的路径字符串,我已经使用了这个语句: $(dirname $ROOT_PATH)/$(dirname REL_PATH)/$(basename $CONF_FILENAME)
但是这对我的观点来说看起来很奇怪。
任何帮助将是伟大的!
'而读-r键EQ值;做声明“$ key = $ value”;完成<$ PROP_FILE'简化了你的循环。 – chepner