2017-07-11 2 views
0

Le problème est dans la section PATH Lorsque je tente de fixer le PATH avec setenv je puis obtenir:syntaxe C-shell:. Trop de ('avertissement s dans .cshrc

set: Variable name must begin with a letter. 

Voici une snip du fichier:

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

oui, problèm m est dans la section 'path'. Il doit être soit sur une seule ligne, soit vous devez utiliser le caractère de continuation à la fin de n'importe quelle ligne non terminée. c'est-à-dire '..../usr/local/java/bin \\'. Pas vraiment une programmation Q, à l'avenir s'il vous plaît envoyer de telles requêtes sur http://superuser.com. ET S'il vous plaît lire http://stackoverflow.com/help/how-to-ask, http://stackoverflow.com/help/dont-ask, http://stackoverflow.com/help/mcve et prendre le [tour] (http://stackoverflow.com/tour) avant de poster plus de Qs ici. Bonne chance. – shellter

+0

@shelter désolé à ce sujet je vais le garder à l'esprit. Maintenant, je reçois ceci: ensemble: Le nom de la variable doit commencer par une lettre. 'set path = (/ sbin/bin/usr/bin/usr/local/bin/usr/local/java/bin /usr/bin/X11 ~/bin) si (! $? Csh) puis si ($? prompt) puis ensemble prmptchr = $ invite autre ensemble prmptchr = "/" endif alias setprompt 'set prompt = "$ cwd $ prmptchr"' nom du répertoire # dans rapide alias cd « chdir \! *; setprompt ' alias pushd' pushd \! *; setprompt ' alias popd' popd \! *; setprompt ' setprompt' – RobbieTheK

+0

Est-ce que tout sur une ligne est le seul changement que vous avez fait? Quand je copie/colle ton code dans mon 'csh', tout fonctionne. Désolé, occupé aujourd'hui, va vérifier quand j'ai le temps. Bonne chance. – shellter

Répondre

1

Voici les 2 questions corrigées:

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

en plus du caractère de continuation pour 'path ..' quel est l'autre changement? Je ne peux pas le voir, et comme je l'ai mentionné, quand j'ai collé votre code original (avec 'path =' tout sur une ligne), cela a fonctionné. Je suis content que vous ayez trouvé une solution. Si vous ne le saviez pas, vous pouvez accepter votre propre soluton comme réponse et gagner des points de réputation. Bonne chance et continuez à poster. – shellter

+1

@shellter Citations dans 'set prmptchr =" $ prompt "' – Carpetsmoker