web-dev-qa-db-fra.com

Impossible de définir un alias dans zsh --- commande non trouvée?

J'essaie de définir alias conky-lua ="conky -c ./.conky/conkyrc &" pour démarrer conky-lua. mais quand je source .zshrc il dit commande non trouvée.

Une solution possible que j'ai trouvée sur Stackoverflow consiste à définir alias ls='ls -GpF'n'a pas résolu le problème

3
Lynob

Le problème est l'espace autour du = dans la commande. Regardez:

[:~] % alias a=ls 

cela fonctionne comme prévu

[:~] % type a
a is an alias for ls

Mais

[:~] % alias b =ls    
[:~] 1 % 

Cela ne fonctionne pas. zsh voir deux mots, b et =ls; il utilise l'extension du chemin d'accès sur le second et exécute alias b /bin/ls --- il se ferme en mode silencieux avec le code d'erreur 1 car ni b ni /bin/ls ne sont alias (alias sans = vérifie si un nom est un alias).

[:~] 1 % alias c ="ls -l"
zsh: ls -l not found
[:~] 1 % 

Cela échoue d'une manière plus étrange; le shell tente de développer le chemin complet de la commande "ls -l" (avec l'espace incorporé dans le nom de la commande) et échoue donc dans sa recherche.

5
Rmano