1 votes

Dans le terminal, lorsque la commande "cd" est appelée, la commande "head" de libwww-perl est également exécutée.

Actuellement, dans le Terminal, lorsque j'exécute un cd il exécute également la commande LWP head commandement.

Une copie de la sortie du terminal suit :

laptop:bin user$ cd ~
Unknown option: n
Usage: head [-options] <url>...
    -m <method>   use method for the request (default is 'HEAD')
    -f            make request even if head believes method is illegal
    -b <base>     Use the specified URL as base
    -t <timeout>  Set timeout value
    -i <time>     Set the If-Modified-Since header on the request
    -c <conttype> use this content-type for POST, PUT, CHECKIN
    -a            Use text mode for content I/O
    -p <proxyurl> use this as a proxy
    -P            don't load proxy settings from environment
    -H <header>   send this HTTP header (you can specify several)

    -u            Display method and URL before any response
    -U            Display request headers (implies -u)
    -s            Display response status code
    -S            Display response status chain
    -e            Display response headers
    -d            Do not display content
    -o <format>   Process HTML content in various ways

    -v            Show program version
    -h            Print this message

    -x            Extra debugging output
laptop:bin user$

J'ai passé en revue le ~/.bash_profile y ~/.bashrc mais il n'y a que trois déclarations d'exportation et aucun alias ou quelque chose comme ça. C'est comme suit :

[[ -s "/Users/user/.rvm/scripts/rvm" ]] && source "/Users/user/.rvm/scripts/rvm"  # This loads RVM into a shell session.
### Added by the Heroku Toolbelt
export PATH="/Applications/XAMPP/xamppfiles/bin:/usr/local/heroku/bin:$PATH"
export PATH=/Users/user/bin/Sencha/Cmd/3.1.2.342:$PATH
export SENCHA_CMD_3_0_0="/Users/user/bin/Sencha/Cmd/3.1.2.342"
export PATH=$PATH:/Applications/acquia-drupal/drush

D'après ce que j'ai lu, il semble que l'installation de LWP ait pu écraser le fichier /usr/bin/head mais j'ai vérifié et c'est celle d'OSX. Cependant, lorsque j'appelle head à partir du Terminal, il invoque la commande LWP head à la place.

A la demande de Patrix, voici le contenu de ~/.rvm/scripts/rvm : http://pastebin.com/7rZVQAcy

Je vais continuer à essayer des choses, et je mettrai à jour la question avec de nouvelles informations si elles sont pertinentes.

Informations complémentaires :

laptop:dir user$ alias cd
-bash: alias: cd: not found
laptop:dir user$ which cd
/usr/bin/cd
laptop:dir user$ which head
/Applications/XAMPP/xamppfiles/bin/head

La sortie de echo "$PS1"; echo "$PROMPT_COMMAND" est :

\h:\W \u\$ 
update_terminal_cwd;

La sortie de type -a update_terminal_cwd est :

update_terminal_cwd is a function
update_terminal_cwd () 
{ 
    local SEARCH=' ';
    local REPLACE='%20';
    local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}";
    printf '\e]7;%s\a' "$PWD_URL"
}

La sortie de type -a cd est :

cd is a function
cd () 
{ 
    if builtin cd "$@"; then
        __rvm_do_with_env_before;
        __rvm_project_rvmrc;
        __rvm_after_cd;
        __rvm_do_with_env_after;
        return 0;
    else
        return $?;
    fi
}
cd is a shell builtin
cd is /usr/bin/cd

4voto

Tony Williams Points 11219

Je vais supposer que vous utilisez bash .

Donc dans ce cas, quand vous tapez juste cd il devrait exécuter le bash intégré. C'est ce qui pose problème.

Pour confirmer cela, essayez d'utiliser la version externe - à l'invite de commande, tapez /usr/bin/cd et vous devriez aller dans votre répertoire personnel sans problème.

Maintenant, vérifions ce que l'autre cd pourrait être en train de faire.

type -a cd devrait nous donner

cd is a shell builtin
cd is /usr/bin/cd

which head devrait nous donner /usr/bin/head

alias pourrait nous donner une longue liste mais rien ne nous indique un alias pour cd

Les variables d'environnement du CD doivent avoir des entrées saines :

CDARGS_NODUPS=1
CDARGS_SORT=0
CDPATH='.:~:~/bin:~/dev:/usr:/'

La même chose avec :

PROMPT_COMMAND='history -a; history -n; printf "\e]1;${PWD}\a"'
PS1='\[\033[34m\]\h:\W \u$\[\033[0m\] '
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor

Si tout cela est OK, alors je parierais sur cd étant redéfini par une fonction intégrée qui a mal tourné. En ligne de commande set | less vous permettra de consulter une liste de toutes les variables, alias et fonctions de votre shell. Si vous tapez / vous pouvez rechercher dans le fichier cd (remarquez l'espace) et voyez si cela se produit.

Une fois que vous avez découvert ce "quelqu'un", dans votre cas. rvm - définit une fonction shell appelée cd alors vous pouvez soit désinstaller le coupable, soit trouver où il fait le sale boulot et changer le nom de la fonction en quelque chose comme 'rcd' au lieu de 'cd'. Comme la fonction shell est listée en premier dans la sortie de type l'intégré cd est ignorée, sauf lorsqu'elle est appelée par la fonction (c'est ce que fait la fonction builtin cd dans la définition de la fonction - appeler la version intégrée).

Je garantirais presque que la fonction est définie dans /Users/user/.rvm/scripts/rvm .

Je commencerais par désinstaller rvm puis réinstallez pour voir si cela résout le problème. L'installez-vous en utilisant MacPorts ou Homebrew ?

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X