Не рекомендуется использовать переменные для хранения команд.См. BashFAQ / 050
Пока вы работаете с исполняемыми файлами, а не со встроенными оболочками, вы можете сделать это:
_launch() {
env $1
}
Это не будет игратьхорошо, если у вас есть буквальные пробелы в значениях, используемых в var=value
парах или аргументах запускаемой команды.
Вы можете решить эту проблему, просто передав команду в функцию запуска и задав переменные в вызове функции.сам по себе, вот так:
_launch() {
# your launch prep steps here...
"$@" # run the command
# post launch code here
}
TESTX=1 TESTY=2 TESTZ=3 _launch ls -la
Переменные будут переданы запущенной команде как переменные среды.