Alias récursif sur Linux

Alias récursif sur Linux - Divers - Linux et OS Alternatifs

Marsh Posté le 13-09-2004 à 16:19:45    

Bonjour à tous.
 
Voici quelque chose qui me pose problème en ce moment, je ne peux pas faire d'alias récursif !! (Je m'explique)
 
Prenons une commande au hasard : ls
 
faisons un premier alias : alias ls='ls -A'
faisons un deuxième alias : alias ls='ls -d'
 
et lorsqu'on fait : alias ls
le shell donne : ls='ls -d'  au lieu de ls='ls -Ad' comme je l'avais espérer.  :??:  
 
Des suggestions ?


---------------
Je suis débutant, je ne viens pas souvent, mais ne m'en voulez pas.
Reply

Marsh Posté le 13-09-2004 à 16:19:45   

Reply

Marsh Posté le 13-09-2004 à 16:39:03    

bin... c'est normal nan ?!
 
Tout ce que fait alias c'est de remplacer des caractères par d'autres. Y'a pas encore d'IA intégrée.
 
PS : et ça n'a aucun rapport avec de la récursivité.


Message édité par cycojesus le 13-09-2004 à 16:41:18

---------------
Chết rồi ! ✍ ⌥⌘ http://github.com/gwenhael-le-moine/slackbuilds/
Reply

Marsh Posté le 13-09-2004 à 16:54:51    

Un réel alias aurait fait  
 
ls=''ls -A' -d' <=> 'ls -Ad'
 
PS : ce principe est totalement récursif
  U(0)
  U(n) = U(n-1) + 1
 
=>  U(2) = (U(0) +1) + 1
 
  /bin/ls
  ls='ls -A'
  ls='ls -d'
 
=> ls=''/bin/ls -A' -d'
 
 
Une solution ?


---------------
Je suis débutant, je ne viens pas souvent, mais ne m'en voulez pas.
Reply

Marsh Posté le 13-09-2004 à 17:05:32    

merde c'est le nouveau sujet du Bac rattrapage Septembre ?????
 
 
 
 
 
 
 
 
 
 
 
:)

Reply

Marsh Posté le 13-09-2004 à 17:16:58    

kaysias a écrit :

Un réel alias aurait fait  
 
ls=''ls -A' -d' <=> 'ls -Ad'
 
PS : ce principe est totalement récursif
  U(0)
  U(n) = U(n-1) + 1
 
=>  U(2) = (U(0) +1) + 1
 
  /bin/ls
  ls='ls -A'
  ls='ls -d'
 
=> ls=''/bin/ls -A' -d'
 
 
Une solution ?


Le problème c'est qu'alias ne se pose pas de question et écrase "bêtement" l'alias précedent.


---------------
Chết rồi ! ✍ ⌥⌘ http://github.com/gwenhael-le-moine/slackbuilds/
Reply

Marsh Posté le 13-09-2004 à 17:22:02    

as-tu essayé :
alias ls_un='ls -A'
alias ls='ls_un -d'
?
 
bien que je ne comprenne pas l'intérêt de cette ruse...:)

Reply

Marsh Posté le 13-09-2004 à 17:32:54    

Cette méthode fonctionne effectivement, mais j'avais espérer trouver quelqu'un qui ait un script ou une autre version d'alias ... qui puissent résoudre le problème sans passer par des solutions détournées  :)


Message édité par kaysias le 13-09-2004 à 17:33:28

---------------
Je suis débutant, je ne viens pas souvent, mais ne m'en voulez pas.
Reply

Marsh Posté le 13-09-2004 à 17:35:48    

en fait pourquoi utilises-tu deux lignes d'aliases pour avoir à la fin un "ls -Ad" par exemple ?

Reply

Marsh Posté le 13-09-2004 à 17:49:25    

Voila le principe :
 
  Comme beacoup de personnes j'utilise ls et l. Je désire obtenir certaines options que pour le ls (par exmple -s), d'autres que pour le l (par exemple -X) et d'autres pour les deux (par exemple la coloration), le tout sans réecriture des options.
 
  Dans mon .zshrc, celà donne quelque chose comme ça :  
 
alias ls='ls -"toutes les options communes"'
 
alias l='ls -"options de l"'
 
alias ls='ls -"options pour ls"'
 
  Voili, voilà
 
PS : j'ai aussi un truc du genre alias l='l -a' juste après alias l='...' dans mon .zshrc qui ne veut pas fonctionner
PPS : j'ai pensé utiliser des fonctions ...


Message édité par kaysias le 13-09-2004 à 17:50:11

---------------
Je suis débutant, je ne viens pas souvent, mais ne m'en voulez pas.
Reply

Marsh Posté le 13-09-2004 à 18:10:52    

au hasard, alias ll+="-d" :D

Reply

Marsh Posté le 13-09-2004 à 18:10:52   

Reply

Marsh Posté le 13-09-2004 à 18:11:43    

a quoi sert : alias ls='ls -"options pour ls"'  
:heink:


---------------
:: Light is Right ::
Reply

Marsh Posté le 13-09-2004 à 19:24:50    

cycojesus> tu vas chercher trop loin. tu ne te rends même pas compte que ce que tu demande serait hyper compliqué à implémenter, pas efficace ( car bash devrait analyser tout les alias ) et inutile.


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 16-09-2004 à 15:21:56    

Merci quand même, je voulais juste savoir si je devais le faire moi-même ou pas.  :jap:


---------------
Je suis débutant, je ne viens pas souvent, mais ne m'en voulez pas.
Reply

Marsh Posté le 16-09-2004 à 17:25:26    

pour que bash le gère il faut le compiler avec l'option --mindreading


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed