Проблема с объединением переменной, результатом команды cat и cut - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть скрипт bash, в котором я читаю файл .properties и получаю свойство, которое храню в переменной:

PROP_VALUE=`cat $PROP_FILE | grep "^$PROP_KEY" | cut -f2 -d'='`

Эта переменная установлена ​​на 5.0.1 .

Когда я хочу использовать эту переменную и объединить ее со второй переменной, я получаю следующий результат:

CONCAT=".0"
echo $PROP_VALUE
=> Result : 5.0.1

echo $PROP_VALUE$CONCAT
=> Result : .00.1

Это удаляет первые 2символы моей первой переменной ($ PROP_VALUE) и заменяет их символами моей второй переменной ($ CONCAT).

Ожидаемый результат: 5.0.1.0

Ответы [ 2 ]

2 голосов
/ 25 сентября 2019

Убедитесь, что ваши .properties - настоящий файл Unix.Если это так, то ваш сценарий в порядке.Если .properties имеет кодировку DOS / Winslows, то у вас проблемы.Думаю, другого объяснения нет.

0 голосов
/ 25 сентября 2019

Мой файл свойств:

version=5.0.1
category=dev
env=rct

Когда я использую следующий синтаксис, у меня возникает та же проблема:

PROP_VALUE=$(cat $PROP_FILE | grep "^$PROP_KEY" | cut -f2 -d'=')

Если $ PROP_VALUE - это переменная, которую я создал вручную (без переходачтобы получить значение в моем файле свойств), он работает:

PROP_VALUE="5.0.1"
CONCAT=".0"
echo $PROP_VALUE$CONCAT
=> Result : 5.0.1.0
...