Następujący błąd pojawia się zawsze po zalogowaniu i utworzeniu nowego ekranu w Linuksie:
Bad : modifier in $ (/).
Ostatnio dodałem kilka ścieżek i nie wiem, czy są one powiązane.
Pamiętam, że dodałem coś do $PATH
i .bashrc
.
Jak mogę to poprawić, aby nie pojawił się ponownie?
Dziękuję!
Komentarze
Odpowiedź
Nie używasz bash
jako powłoki, ale (t)csh
:
> csh % PATH="${PATH:/blah}" Bad : modifier in $ (/).
Jeśli zamiast tego chcesz użyć bash
, prawdopodobnie możesz uruchomić chsh
lub poproś administratora systemu, aby zmienił to za Ciebie.
W bash
, jeśli nie wyrównałeś :
i umieść go w nawiasach klamrowych {
}
oznaczałoby to, że modyfikator ma być zastosowane do zmiennej. W csh
nawiasy klamrowe nie są potrzebne do zastosowania modyfikatora i w rzeczywistości musiałbyś dodać nawiasy klamrowe, jeśli nie chcesz, aby :
sygnalizował, że modyfikator go śledzi.
Komentarze
- Czy to przypuszczenie czy fakt? ' trudno powiedzieć.
- @Wildcard
bash
ma bardzo różne komunikaty o błędach; powiedziałby: ' błąd składni: oczekiwany operand (token błędu to " / blah ") '. Wyjaśniłem trochę moją odpowiedź.
Odpowiedź
Będziesz musiał uciec „:”. Twój plik cshrc powinien więc wyglądać następująco:
setenv PATH $PATH\:/path/to/add
Następnie możesz zrobić,
source ~/.cshrc
, aby zastosować zmiany w bieżącym terminalu. Zostanie automatycznie zastosowana przy następnym otwarciu nowego terminala.
Komentarze
- Bardziej poprawna składnia w (t) csh to
setenv PATH ${PATH:q}:/path/to/add
. Lub lepiejset path = ($path:q /path/to/add)
lub nawet lepiej wtcsh
:set -f path = ($path:q /path/to/add)
, aby zachować unikalność elementów.
$PATH
? Czy zmieniłeś swój.bashrc
? Czy możesz opublikować swoje.profile
i.bashrc
?$
i powłokę interpretuje$
jako znak specjalny.