все,
Я нашел, что тот же Make-файл работает хорошо в Mac OS X, но не работает в Ubuntu. Отрывок как следует:
start:
@echo $(seperator)
@if [[ "$(PROJECT)" == "" ]]; then \
echo " Project powered by CodeMate!"; \
else \
echo " $(PROJECT)"; \
fi
@echo $(seperator)
и сделайте, жалуется:
/bin/sh: [[: not found
Какая-либо идея?
Удачи,
Литий
Обновления:
Я изменил вышеупомянутые условные операторы Bash на:
if test "$(PROJECT)" = ""; then \
затем вещи хорошо работают. Так что не так с" [["?
Make-файлы используют sh
по умолчанию, а не bash
.
В Ubuntu sh
указывается на dash
, POSIX-совместимую и минималистичную оболочку, не обеспечивающую [[
работу клавиш.
Поместите это наверху вашего Makefile
:
SHELL := /bin/bash # Use bash syntax
Это происходит потому, что [[
является встроенной командой bash
, и вы запускаете ее с sh
. В приведенной выше строке будет установлен bash
в качестве интерпретатора по умолчанию для команд, запускаемых в make-файле.