Re: Tilde expansion dans bash

Top Page

Reply to this message
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 :

getent passwd $USER | cut -d: -f6


Damien


--
Damien Goutte-Gattat