Źle: modyfikator w $ (/). pojawia się zawsze po zalogowaniu i utworzeniu nowego ekranu w Linuksie

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

  • Nie ' nie wiemy, czy ' są również powiązane. Czy możesz dodać to, co zmieniłeś do pytania?
  • „Dodałeś kilka ścieżek” oznacza, że dodałeś rzeczy do $PATH? Czy zmieniłeś swój .bashrc? Czy możesz opublikować swoje .profile i .bashrc?
  • Patrz stackoverflow.com/questions/8805839/bad-modifier-in
  • Dziwne zgadywanie: dodałeś ścieżkę zawierającą $ i powłokę interpretuje $ jako znak specjalny.
  • Pamiętam, że dodałem coś do $ PATH i .bashrc. Jak mogę wyświetlić moje pliki .profile i .bashrc? Mark, obejrzałem ten post i próbowałem zrobić coś takiego: setenv PATH $ {PATH}: /, ale nie ' t działało.

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 lepiej set path = ($path:q /path/to/add) lub nawet lepiej w tcsh: set -f path = ($path:q /path/to/add), aby zachować unikalność elementów.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *