Špatný: modifikátor v $ (/). se objeví kdykoli po přihlášení a vytvoření nové obrazovky v systému Linux

Následující chyba se vždy objeví kdykoli po přihlášení a vytvoření nové obrazovky v systému Linux:

Bad : modifier in $ (/). 

Nedávno jsem přidal několik cest a nevím, jestli to souvisí.

Pamatuji si, že pro cesty jsem přidal věci do $PATH a .bashrc.

Jak jej mohu opravit, aby se znovu neobjevil?

Děkujeme!

Komentáře

  • Nevíme ' nevíme, jestli ' související. Můžete k otázce přidat, co jste změnili?
  • „Přidali jste nějaké cesty“ znamená, že jste přidali věci do $PATH? Změnili jste .bashrc? Můžete zveřejnit své .profile a .bashrc?
  • Viz stackoverflow.com/questions/8805839/bad-modifier-in
  • Divoký odhad: přidali jste cestu s $ a pláštěm interpretuje $ jako speciální znak.
  • Pamatuji si, že jsem přidal věci do $ PATH a .bashrc. Jak mohu zobrazit svůj .profile a .bashrc? Marku, viděl jsem ten příspěvek a zkusil jsem něco jako: setenv PATH $ {PATH}: /, ale ' to nefungovalo.

Odpověď

Nepoužíváte bash jako svůj shell, ale (t)csh:

> csh % PATH="${PATH:/blah}" Bad : modifier in $ (/). 

Chcete-li místo toho použít bash, můžete pravděpodobně spustit chsh nebo požádejte správce systému, aby to pro vás změnil.

Pokud byste v bash nesprávně zarovnali : a umístěte jej do složených závorek { } znamenalo by to, že modifikátor má být použito na proměnnou. V csh nejsou složené závorky potřebné k použití modifikátoru a ve skutečnosti je potřeba přidat složené závorky, pokud ne chcete, aby : signalizoval, že jej sleduje modifikátor.

Komentáře

  • Je to odhad nebo fakt? Je ' těžké to zjistit.
  • @Wildcard bash má velmi odlišné chybové zprávy; říkalo by se: ' syntaktická chyba: očekává se operand (token chyby je " / blah ") '. Upřesnil jsem svou odpověď ještě víc.

Odpovědět

Budete muset uniknout „:“. Váš soubor cshrc by tedy měl vypadat,

setenv PATH $PATH\:/path/to/add 

Poté můžete provést,

source ~/.cshrc 

aplikuje změny na aktuální terminál. Automaticky se použije při příštím otevření nového terminálu.

Komentáře

  • Správnější syntaxe v (t) csh by byla setenv PATH ${PATH:q}:/path/to/add. Nebo lépe set path = ($path:q /path/to/add) nebo ještě lépe v tcsh: set -f path = ($path:q /path/to/add), aby byly prvky jedinečné.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *