Сценарий оболочки: переменная окружения с кавычками при передаче в массив? - PullRequest
0 голосов
/ 15 октября 2019

У меня есть сценарий оболочки, часть которого делает это:

bundle exec rake parallel[${@:3}];

$ {@: 3} является динамическим и может быть что-то вроде -p thread11 THREAD = test_thread11 или просто @ test.feature

Задача rake ожидает один аргумент, но независимо от того, что я пытаюсь, я не могу заставить скрипт оболочки заключать переменную в кавычки, поэтому вместо отправки что-то вроде

bundle execпараллельная rake ["- p thread11 THREAD = test_thread11"]

Я заканчиваю тем, что отправляю

связку exec rake параллельно [-p thread11 THREAD = test_thread11]

Что приводит к сбою задачи rake.

С помощью оператора echo я могу получить правильный вывод, выполнив

echo "Будет использовать команду запуска" bundle exec rake parallel ["'$ {@: 3}'"]

Можно ли заключить значение переменной в кавычки при передаче его задаче?

1 Ответ

2 голосов
/ 15 октября 2019

Похоже, что вы хотите использовать "${*:3}" вместо этого, который будет генерировать одно слово с пробелом из 3 аргументов, а не последовательность отдельных слов, по одному на аргумент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...