Próbuję skonfigurować cocos2dx w Ubuntu 14.04 LTS, ale po ustawieniu zmiennych środowiskowych (in .bashrc
) zaczynam otrzymywać ten błąd:
bash: export: dev/cocos2d-x-3.2/tools/cocos2d-console/bin': not a valid identifier
bash: export:/home/john/android': not a valid identifier
bash: export: dev/android-ndk-r10b': not a valid identifier
bash: export:dev/adt-bundle-linux-x86_64-20140702/sdk': not a valid identifier
I nie wiem, co zrobić, aby to naprawić.
Odpowiedzi:
Wygląda na to, że nie zrobiłeś tego poprawnie.
Otrzymywane błędy oznaczają, że ścieżki (jak
/home/john/android
) są używane jako nazwy zmiennych, a nie jako przypisane im wartości .NAME=value
.export NAME
.export NAME=value
.Podejrzewam, że próbujesz zrobić trzecią rzecz, ale używasz złej składni. Pięć typowych błędów, które mogą powodować błędy takie jak to, co widzisz:
Używanie spacji zamiast
=
.export NAME value
jest nieprawidłowe;value
jest następnie interpretowane jako nazwa kolejnej zmiennej do wyeksportowania.(Dzieje się tak, ponieważ
export NAME1 NAME2
jest poprawna składnia do eksportowania wielu zmiennych).Rozmieszczanie przestrzeni
=
. W wielu językach programowania jest to zarówno poprawne, jak i preferowane stylistycznie, aby wstawiać operatorów ze spacjami przez większość czasu. Ale aby przypisać wartość do zmiennej w skrypcie powłoki (lub w innej sytuacji, w której wydajesz polecenia powłoki), jest to niedozwolone.NAME = value
(wexport
poleceniu lub w inny sposób) nie będzie działać; musisz użyćNAME=value
.(
export NAME = value
próbuje wyeksportować zmienne o nazwachNAME
,=
ivalue
. Na szczęście nigdy nie wydaje się, że się to udaje po cichu, ponieważ próba wyeksportowania zmiennej o nazwie=
jest błędem składniowym. W przeciwieństwie doexport NAME= value
tego wydaje się działać, ale nie przypisujevalue
do -NAME
zamiast tego przypisuje puste, łańcuch o zerowej długościNAME
i eksportuje go, a osobno eksportuje zmiennąvalue
. Oba są częstymi błędami).Oddzielanie części wartości zmiennej spacjami. Zmienne środowiskowe mogą zawierać spacje, ale w praktyce rzadko są używane jako separatory pól w zmiennych środowiskowych. Gdy pojedyncza zmienna celowo zawiera wiele ścieżek, zwykle
:
służy do ich rozdzielenia.Brak cytowania spacji podczas przypisywania do zmiennych. Czasami wartość zmiennej środowiskowej powinna zawierać spację. Na przykład może to być nazwa katalogu, który naprawdę zawiera spację. W takim przypadku należy podać dowolne spacje.
Jednym ze sposobów na to jest ich poprzedzenie
\
. Zobacz Jak mogę chronić nawiasy przekazywane do polecenia cd? i Nie można usunąć pliku w celu uzyskania informacji o innych sposobach - zastosowanie mają metody przedstawione w odpowiedziach, nawet jeśli żadne pytanie nie dotyczy przypisania zmiennych środowiskowych.Na przykład oto kilka sposobów eksportowania zmiennej środowiskowej
SILLYPATH
o wartości/home/ek/silly name/bin
:Często gdy folder, którego musisz użyć w powłoce lub przypisać do powszechnie używanej zmiennej środowiskowej, zawiera spację, zmiana nazwy może być korzystna. (Ale czasem jest to niepraktyczne lub niepożądane).
Przypisywanie i / lub eksportowanie zmiennej, gdy nic nie trzeba było robić. To rodzaj meta-błędu; konkretny problem techniczny jest często jednym z powyższych, ale rozwiązaniem jest pozbyć się linii przestępczej lub jej części, zamiast ją naprawić.
.bashrc
Oczywiście nie usuwaj bezkrytycznie kodu . Aleexport
może zostać dodany przypadkowo lub może przypadkowo mieć w nim więcej kodu, niż zamierzano. Załóżmy na przykład, że chciałeś napisać:To by się dołączyło
.bashrc
, a następnie ponownie go źródło. Załóżmy jednak, że zamiast tego napisałeś:Wtedy twoje
export
polecenie nie tylko wyeksportuje zwiększoną wartośćPATH
, ale również spróbuje wyeksportować zmienne o nazwach.
i , co nie jest tym, czego chcesz. Ponieważ zawierają znaki, które są zabronione w nazwach zmiennych, więc przy każdym uruchomieniu nowej interaktywnej powłoki bash otrzymasz błąd./home/your-username/.bashrc
Aby uniknąć tego problemu, sugeruję edytowanie
.bashrc
w edytorze (np.nano ~/.bashrc
,gedit ~/.bashrc
) Zamiast przekierowywania wyjścia na jego koniec za pomocą>>
.Podejrzewam, że może to być wystarczająca informacja, aby znaleźć i naprawić błąd w
.bashrc
pliku. Jeśli potrzebujesz dalszej pomocy, powinieneś oczywiście opublikować pełną zawartość tego pliku do analizy. (Tylko przez przypadek twój problem był wystarczająco często spotykany i z wystarczająco przejrzystym komunikatem o błędzie, aby umożliwić taką ogólną odpowiedź).źródło
Upewnij się, że działasz:
Zamiast:
W przeciwnym razie próbujesz wyeksportować wartość zmiennej, a nie samą zmienną, więc pojawi się ten błąd.
źródło
Wyeliminuj spacje i znak dolara. Na przykład działa to tak samo, jak można ustawić moduł ustawień django na serwerze WWW za pośrednictwem SSH, tj .:
źródło
Widziałem to dość często, gdy kopiujesz coś za pomocą odwróconych przecinków (z Internetu) i aktualizujesz środowisko lub plik bashrc.
Dobrym początkiem byłoby po prostu ręczne wpisanie odwróconych przecinków w wklejonej treści.
źródło