Voici un script bash je travaille sur:erreur étrange vérifier si le répertoire existe avec le script Bash
dir="~/path/to/$1/folder"
if [ -d "$dir" ]; then
# do some stuff
else
echo "Directory $dir doesn't exist";
exit 1
fi
et quand je le lance à partir du terminal:
> ./myscript.sh 123 Directory ~/path/to/123/folder doesn't exist
Mais ce dossier ne clairement exister. Cela fonctionne normalement:
> ls ~/path/to/123/folder
Qu'est-ce que je fais mal?
Juste parce que Joakim n'a fourni aucune explication: Vous avez cité le ~. ~ se développe seulement dans bash pendant l'expansion du tilde, mais tout ce que vous citez, vous désactivez la signification spéciale de, de sorte que le tilde (~) ne signifie plus "se développe dans le répertoire personnel de l'utilisateur courant". Cela signifiait simplement: "le répertoire dans le répertoire courant appelé ~". Ce qui n'existait pas, d'où l'erreur. – lhunath