Вызов значений из файла .properties?

Прямо сейчас у меня есть простой скрипт, который я хочу теперь вызвать .properties, а затем распечатать результаты этого файла, это то, что у меня есть до сих пор. file

WD_MANAGEGOLD_DATETIMESTAMP=Wed 20 May 2015 13:50:51 UTC
WD_MANAGEGOLD_SUCCESS=false
WD_MANAGERC_DATETIMESTAMP=Wed 20 May 2015 13:50:51 UTC
WD_MANAGERC_SUCCESS=false

Как вы можете видеть из скрипта, я могу вызвать файл и распечатать результаты, но мне нужно иметь возможность выбирать, какие значения и сохранять их как переменные для последующего использования в скрипте. ??

Любая помощь будет отличной

1
задан 20 May 2015 в 18:21

2 ответа

Можно экспортировать их как это.

#!/bin/bash
#Specific Set Variables 
SpecficStatus="Pass" #SetVariable 
timestamp() { date +"%a %d %b %Y %T %Z"; }
SpecficDate=$(timestamp)

echo $SpecficStatus
echo $SpecficDate

#Properties Call
file="savedState.properties"
#Echo out the file


while IFS== read -r VAR1 VAR2
do
    #echo "VAR1=$VAR1 : VAR2=$VAR2"
    export "$VAR1=$VAR2"
done < savedState.properties

echo "$WD_MANAGEGOLD_DATETIMESTAMP"
echo "$WD_MANAGEGOLD_SUCCESS"
echo "$WD_MANAGERC_DATETIMESTAMP"
echo "$WD_MANAGERC_SUCCESS"

Это распечатывает:

Pass
Wed 20 May 2015 12:24:26 EDT
Wed 20 May 2015 13:50:51 UTC
false
Wed 20 May 2015 13:50:51 UTC
false
0
ответ дан 20 May 2015 в 18:21

Используя grep, сохранить, например. WD_MANAGEGOLD_DATETIMESTAMPзначение в a wd_managegold_datetimestamp переменная и WD_MANAGEGOLD_SUCCESSзначение в a wd_managegold_success переменная:

#!/bin/bash

# ...
wd_managegold_datetimestamp=$(< savedState.properties grep -Po '^WD_MANAGEGOLD_DATETIMESTAMP=\K.*')
wd_managegold_success=$(< savedState.properties grep -Po '^WD_MANAGEGOLD_SUCCESS=\K.*')
# ...

Но в этом случае для связанных с хранилищем значений в массив, так могло бы быть удобно сохранить, например, все WD_MANAGEGOLD и WD_MANAGERC значения в два wd_managegold и wd_managerc массивы:

#!/bin/bash

# ...
IFS=$'\n\r' GLOBIGNORE='*' wd_managegold=($(< savedState.properties grep -Po '^WD_MANAGEGOLD_.*=\K.*'))
IFS=$'\n\r' GLOBIGNORE='*' wd_managerc=($(< savedState.properties grep -Po '^WD_MANAGERC_.*=\K.*'))
# ...
  • IFS=$'\n\r': Наборы bashвнутренний разделитель полей и к символу новой строки и к символу возврата каретки, так, чтобы каждая новая строка / возврат каретки разделила значение, хранится в поле единого массива;

  • GLOBIGNORE='*': Наборы bashвстроенный GLOBIGNORE переменная к *, таким образом, это оценивает соответствие специальным именам файлов, не будет рассматриваться особенно

0
ответ дан 20 May 2015 в 18:21

Другие вопросы по тегам:

Похожие вопросы: