2017-05-24 4 views
1

J'ai un alias existant pour ls de oh-my-zsh suite.Comment ajouter un alias existant dans le shell?

[email protected] ~ % alias ls 
ls='ls -G' 
[email protected] ~ % 

Cet alias dépend de divers paramètres tels que le système d'exploitation, les paramètres de couleur, etc. Par conséquent, je ne peux pas remplacer et je voudrais précédez alias existant à quelque chose comme ceci:

LC_COLLATE=C ls -G 

Mais cela ne fonctionne pas comme prévu, -G est allé:

[email protected] ~ % alias ls='LC_COLLATE ls' 
[email protected] ~ % alias ls 
ls='LC_COLLATE ls' 
[email protected] ~ % 

je peux faire :

[email protected] ~ % alias ls 
ls='ls -G' 
[email protected] ~ % alias ls="LC_COLLATE=C `alias ls|sed -E "s/ls='(.*)'/\1/"`" 
[email protected] ~ % alias ls 
ls='LC_COLLATE=C ls -G' 
[email protected] ~ % 

Ugly! :)

Une solution élégante?

Répondre

1

Aucune dépendance au programme externe comme sed.

eval old$(alias ls);alias ls="LC_COLLATE=C $oldls"