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
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épeset path = ($path:q /path/to/add)
nebo ještě lépe vtcsh
:set -f path = ($path:q /path/to/add)
, aby byly prvky jedinečné.
$PATH
? Změnili jste.bashrc
? Můžete zveřejnit své.profile
a.bashrc
?$
a pláštěm interpretuje$
jako speciální znak.