Hello folks,
J'essaie d'utiliser l'expansion du tilde dans bash pour arriver dans la
home dir de mes utilisateurs. Sur la ligne de commande, cela marche
impec, mais pas dans un script.
Exemple simplifié: je récupère dans /var/spool/mail les fichiers
existants (dont le nom est celui du user propriétaire) et je tente de
lister leur home dir (qui n'est pas forcément dans /home) :
#!/bin/bash
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
alors que si je tape à la main (ou si je fais un copier-coller depuis le
message d'erreur)
ls ~monuser
cela liste bien sa home dir.
J'ai pensé un moment que c'était un pb de code page, mais non.
J'ai pensé que la tilde expansion ne se faisait que pour des arguments
en ligne de commande, mais ce n'est pas apparemment ce que dit la doc :
http://www.faqs.org/docs/bashman/bashref_28.html
Meme chose si je tente qqchose du genre
HOMEDIR=~$USER
ls $HOMEDIR
J'ai tenté d'appeler un sous-shell, pas mieux.
Je pourrais aller parser /etc/passwd, mais ça me semble crade.
Any hints ?
Merci