Author: Damien Goutte-Gattat Date: To: guilde Subject: Re: Tilde expansion dans bash
Bonjour,
JM Coursimault <guilde@???> wrote: > cd /var/spool/mail
> for USER in *
> do echo $USER
> ls ~$USER
> done
>
> Résultat : un paquet d'erreurs du type
> ls: ne peut accéder ~monuser: Aucun fichier ou répertoire de ce type
Sauf erreur de ma part, cela vient du fait que lorsqu’il analyse une
commande, le shell interprète le tilde _avant_ les variables. Ici c’est
l’inverse qui est souhaité.
Je ne sais pas si ce comportement est modifiable.
> Je pourrais aller parser /etc/passwd, mais ça me semble crade.
Utiliser getent (1) l’est sans doute un peu moins :