просто то, что я не могу понять это. Начинающий скрипт bash здесь
Я написал скрипт для принятия параметров командной строки, которые позже передаются в Maven
Вот рабочая версия скрипта:
#!/bin/bash -x
# deploys the application and runs acceptance tests against it
if [ -n "$1" ]; then
#Executes acceptance tests containing the word $1 - eg: ats paymill, will only run test scenarios with the paymill word
echo mvn clean verify -Pacceptance.test -Dcucumber.options=\"-n $1\"
eval $(echo mvn clean verify -Pacceptance.test -Dcucumber.options=\"-n $1\")
else
mvn clean verify -Pacceptance.test;
fi
Но я ожидаю, что это будет работать:
#!/bin/bash -x
# deploys the application and runs acceptance tests against it
if [ -n "$1" ]; then
#Executes acceptance tests containing the word $1 - eg: ats paymill, will only run test scenarios with the paymill word
echo mvn clean verify -Pacceptance.test -Dcucumber.options=\"-n $1\"
mvn clean verify -Pacceptance.test -Dcucumber.options=\"-n $1\"
else
mvn clean verify -Pacceptance.test;
fi
Но выполнение последнего скрипта (с флагом -x) дает мне следующий вывод
+ '[' -n paymill ']'
+ echo mvn clean verify -Pacceptance.test '-Dcucumber.options="-n' 'paymill"'
mvn clean verify -Pacceptance.test -Dcucumber.options="-n paymill"
+ mvn clean verify -Pacceptance.test '-Dcucumber.options="-n' 'paymill"'
Я могу видеть, что результат команды echo - тот, который я ожидаю, но если я попытаюсь запустить это вместо эхо, это не сработает.
Откуда эти кавычки появляются в опциях -Dcucumber.options и между словами -n и paymill?
Спасибо за любую помощь, просто не могу понять это