2017-05-24 1 views
1

Ich habe bestehenden Alias ​​für ls aus oh-my-zsh Suite.Wie Vorhandenen Alias ​​in Shell?

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

Dieser Alias ​​hängt von verschiedenen Einstellungen ab, wie Betriebssystem, Farbeinstellungen und so weiter. Deshalb kann ich nicht einfach überschreiben und möchte prepend bestehenden Alias ​​etwas wie folgt aus:

LC_COLLATE=C ls -G 

Aber dies nicht wie erwartet funktioniert, ‚-G‘ gegangen ist:

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

ich tun kann, :

[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] ~ % 

Hässlich! :)

Jede elegante Lösung?

Antwort

1

Keine Abhängigkeit zu einem externen Programm wie sed.

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