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

но так как этот вызов должен быть сделан несколько раз, я бы предпочел избежать этого.

Любое предложение?

Ответы на вопрос(5)

Ваш ответ на вопрос