2017-07-11 1 views
0

Ist das Problem in der PATH Abschnitt Wenn ich versuche, die PATH mit setenv zu beheben ich dann:C-Shell-Syntax. Zu viele ('s Warnung in .cshrc-

set: Variable name must begin with a letter. 

Hier ist ein schnippeln der Datei:

setenv MAIL /usr/spool/mail/$USER 
setenv MATLABPATH /home/users/me/matlab/functions:/home/users/me/matlab/scripts 
setenv PYTHONPATH /home/users/me/python/modules:/home/users/me/python/scripts 
set path=(/sbin /bin /usr/bin /usr/local/bin /usr/local/java/bin 
      /usr/bin/X11 ~/bin) 
if (! $?csh) then 
    if($?prompt) then 
     set prmptchr=$prompt 
    else 
     set prmptchr="/" 
    endif 
    alias setprompt 'set prompt = "$cwd$prmptchr "' # directory name in prompt 
    alias cd 'chdir \!*; setprompt' 
    alias pushd 'pushd \!*; setprompt' 
    alias popd 'popd \!*; setprompt' 
    setprompt 
endif 
+0

ja, proble m befindet sich im Abschnitt "Pfad". Es sollte entweder alles auf einer Zeile sein, oder Sie müssen das Fortsetzungszeichen am Ende einer nicht abgeschlossenen Zeile verwenden. d. h. "..../usr/local/java/bin \\". Nicht wirklich eine Programmierung Q, in der Zukunft solche Anfragen bitte auf http://superuser.com. UND Bitte lesen Sie http://StackOverflow.com/Help/How-to-Ark, http://StackOverflow.com/Help/Dont-Ask, http://StackOverflow.com/Help/Mcve und nehmen Sie die [Tour] (http://stackoverflow.com/tour), bevor Sie hier weitere Fragen stellen. Viel Glück. – shellter

+0

@shelter Entschuldigung, das werde ich mir merken. Jetzt bekomme ich das: set: Variablenname muss mit einem Buchstaben beginnen. 'set path = (/ sbin/bin/usr/bin/usr/lokal/bin/usr/local/java/bin /usr/bin/X11 ~/bin) if (! $? Csh) dann if ($? prompt) dann Satz prmptchr = $ Prompt sonst Satz prmptchr = "/" endif alias setprompt 'set prompt = "$ cwd $ prmptchr"' # Verzeichnisname in Prompt alias cd ‚chdir \! *; setprompt ' alias pushd' pushd \! *; setprompt ' alias popd' popd \! *; setprompt ' setprompt' – RobbieTheK

+0

Ist alles in einer Zeile die einzige Änderung, die Sie vorgenommen haben? Wenn ich Ihren Code in mein 'csh' kopiere/einfügen, funktioniert alles. Entschuldigung, beschäftigt heute, werde zurückkommen, wenn ich Zeit habe. Viel Glück. – shellter

Antwort

1

Hier werden die 2 Ausgaben korrigiert sind:

setenv MAIL /usr/spool/mail/$USER 
setenv MATLABPATH /home/users/me/matlab/functions:/home/users/me/matlab/scripts 
setenv PYTHONPATH /home/users/me/python/modules:/home/users/me/python/scripts 

# Added \ to split across multiple lines 
set path=(/sbin /bin /usr/bin /usr/local/bin /usr/local/java/bin \ 
      /usr/bin/X11 ~/bin) 
if (! $?csh) then 
    if($?prompt) then 
     # Added " around $prompt to make sure it's quoted correctly. 
     set prmptchr="$prompt" 
    else 
     set prmptchr="/" 
    endif 
    alias setprompt 'set prompt = "$cwd$prmptchr "' # directory name in prompt 
    alias cd 'chdir \!*; setprompt' 
    alias pushd 'pushd \!*; setprompt' 
    alias popd 'popd \!*; setprompt' 
    setprompt 
endif 
+0

neben dem Fortsetzungszeichen für 'Pfad ..' was ist die andere Änderung? Ich kann es nicht sehen, und wie ich bereits erwähnt habe, hat es funktioniert, als ich Ihren ursprünglichen Code eingefügt habe (mit 'path =' all in einer Zeile). Schön, dass Sie eine Lösung gefunden haben. Wenn Sie es nicht wussten, können Sie Ihre eigene Lösung als Antwort akzeptieren und wertvolle Reputationspunkte erhalten. Viel Glück und posten Sie weiter. – shellter

+1

@shellter Zitate in 'set prmptchr =" $ prompt "' – Carpetsmoker