Как экранировать специальные символы в переменных при чтении из файла свойств с использованием сценариев оболочки.Файл свойств содержит ключ и значение, а ключ содержит символ точки (.).Этот символ периода в ключе считается исполняемым, и bash его выполняет.Я поместил двойные кавычки в раскрытие переменной, но все равно выдает ошибку.Что я тут делаю не так.
#!/bin/bash
source my-sonar.properties
for servicename in `cat my-services.input`
do
# Both variable expansions are not working.
echo $servicename ${sonar.host.url} ${sonar.login}
echo $servicename "$sonar.host.url" "$sonar.login"
done
root # cat my-sonar.properties
sonar.host.url=http://localhost:9000/sonar/
sonar.login=sonar-token-string
root # cat my-services.input
javaservice-one
javaservice-two
Ниже приведена ошибка, которую я вижу.
my-sonar.properties: line 1: sonar.host.url=http://localhost:9000/sonar/: No such file or directory
my-sonar.properties: line 2: sonar.login=sonar-token-string: command not found
./sonar-execute.sh: line 7: ${sonar.host.url}: bad substitution