Прямо сейчас у меня есть простой скрипт, который я хочу теперь вызвать .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
Как вы можете видеть из скрипта, я могу вызвать файл и распечатать результаты, но мне нужно иметь возможность выбирать, какие значения и сохранять их как переменные для последующего использования в скрипте. ??
Любая помощь будет отличной
Можно экспортировать их как это.
#!/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
Используя 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
переменная к *
, таким образом, это оценивает соответствие специальным именам файлов, не будет рассматриваться особенно