http://semicomplete.googlecode.com/svn/codesamples/shebang.c
от вопрос уже есть ответ здесь:
Выполнение команд, содержащих пробел в bash 6 ответовЯ думал, что это будет легко, но я уже потратил несколько часов на это.
Я хочу запустить следующую команду cmake из скрипта bash. В терминале я бы набрал
cmake -G "Unix Makefiles" .
и это работает. Если я копирую это точно в сценарий bash, это тоже работает.
Но сценарий предназначен для работы на нескольких платформах, и он может быть «Makefiles MSYS» вместо «Makefiles Unix». Поэтому я хочу поместить команду в переменную, содержимое которой зависит от платформы, и выполнить ее. Однако это то, где я застрял. Я пробовал каждую комбинацию одинарных / двойных кавычек, о которых только мог подумать, но ничего не получилось.
Что я хочу, так это что-то вроде
c="cmake . -G \"Unix Makefiles\""
exec $c
но это всегда приводит к некоторому изменению следующего:
CMake Error: Could not create named generator "Unix
Я понимаю, что я мог сделать
if test [... this is unix ...]
cmake . -G "Unix Makefiles"
else
cmake . -G "MSYS Makefiles
fi
но так как этот вызов должен быть сделан несколько раз, я бы предпочел избежать этого.
Любое предложение?