Если бы Вы довольно довольны MSBuild, то я придерживался бы MSBuild. Это может быть одним из тех случаев, где инструмент, который Вы изучаете сначала, является тем, Вы предпочтете. Я запустил с NAnt и не могу вполне привыкнуть к MSBuild. Я уверен, что они оба будут вокруг в течение достаточно долгого времени.
существуют некоторые принципиальные различия между этими двумя, вероятно, лучше всего выделенными этот разговор между некоторыми вентиляторами NAnt и Microsoftie.
Интересно, Jeremy Miller задал вопрос полной противоположности на его блоге в прошлом году.
Вы столкнулись с этой проблемой, потому что вы сохраняете команду в переменной, а затем расширяете ее; если для этого нет веской причины, не делайте этого :
sudo time $BLACKRAY_BIN_PATH/blackray_loader -c $BLACKRAY_LOADER_DEF_PATH/$BLACKRAY_LOADER_DEF_NAME -d $BLACKRAY_CSV_PATH -e "$BLACKRAY_END_POINT" -a $OUT_FILE
Если вам действительно нужно сохранить команду и использовать ее позже, есть несколько вариантов; в вики bash-hackers.org есть хорошая страница по этой теме . Мне кажется, что наиболее полезным здесь является поместить команду в массив, а не в простую переменную:
BLACKRAY_INDEX_CMD=($BLACKRAY_BIN_PATH/blackray_loader -c $BLACKRAY_LOADER_DEF_PATH/$BLACKRAY_LOADER_DEF_NAME -d $BLACKRAY_CSV_PATH -e "$BLACKRAY_END_POINT")
sudo time "${BLACKRAY_INDEX_CMD[@]}" -a $OUT_FILE
Это позволяет избежать путаницы между словами-разделителями и пробелами в словах, потому что слова не разделены пробелами - они находятся в отдельных элементах массива.
Да. Вам необходимо использовать вариант размещения оператора new (). Например:
void *pData = ....; // memory segment having enough space to store A object
A *pA = new (pData) A;
Обратите внимание, что при размещении new исключение не возникает.
в качестве имени файла в дополнение к "test.txt". Кроме того, echo
отбрасывает лишние пробелы.
Когда параметр цитируется, как во втором разделе, grep
рассматривает его как один аргумент (включая лишние пробелы) и обрабатывает это правильно. А echo
сохранил лишние пробелы.
Я использовал лишние пробелы, кстати, просто для помощи в демонстрации.
возможно, вам нужно заключить аргумент в двойные кавычки (например, «$ {6}»).
После комментария OP он должен быть «$ BLACKRAY_END_POINT»