У меня есть один файл с именем template.tpl
.
#!/bin/bash
RESULT=`curl https://${MY_VAR_USERNAME}:${MY_VAR_PASSWORD}@my-domain.com/service`
echo $RESULT
if [ "$RESULT" == "ok" ]; then
exit 0
fi
exit 2
этот файл шаблона должен быть проанализирован с помощью этого сценария replace-script.sh
#!/bin/bash
set -a
: ${MY_VAR_USERNAME="testuser"}
: ${MY_VAR_PASSWORD="supersecurepassword"}
# replace every variable declared in a .tpl file delete the .tpl extention
srcFile="template.tpl"
cat $srcFile | envsubst > $(echo $srcFile | sed -r 's/.tpl$//')
Когда я делаю сейчас bash replace-script.sh
я получил следующий результат:
#!/bin/bash
RESULT=`curl https://testuser:supersecurepassword@my-domain.com/service`
echo
if [ "" == "ok" ]; then
exit 0
fi
exit 2
Итак, переменная, которую я хочу проанализировать, отлично анализируется. Но плохо то, что заменяется КАЖДЫЙ $ VAR, а не только те, которые объявлены в моем файле replace-script.sh
.