[英]Bash - How to read content of file into variable, the file was read from key->value property file?
我有一個具有這樣內容的key-> value屬性文件(my.prop):
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}`
我將CONF_FILE_CONTENT=`cat ${CONF_FULL_PATH}`
此錯誤消息- :沒有這樣的文件或目錄 CONF_FILE_CONTENT=`cat ${CONF_FULL_PATH}`
/ folder1 /
因此,我的問題是,如何正確形成my.conf文件的路徑並將其內容放入某個特定變量? 我已經嘗試使用source
命令代替while循環。 同樣,為了構建正確的路徑字符串,我使用了以下語句: $(dirname $ROOT_PATH)/$(dirname REL_PATH)/$(basename $CONF_FILENAME)
但是從我的角度來看這很奇怪。
任何幫助將是巨大的!
如果從my.prop
文件中刪除空格,則可以使用source
(或.
)讀取其中的變量。 這將使其更加容易。
my.prop:
ROOT_PATH=/opt/user1/
REL_PATH=data/folder1/
CONF_FILENAME=my.conf
然后,您可以在腳本中直接使用它們:
#!/bin/bash
. my.prop
CONF_FULL_PATH="${ROOT_PATH}${REL_PATH}${CONF_FILENAME}"
CONF_FILE_CONTENT=$(cat "$CONF_FULL_PATH")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.